linux_C语言实现网络通信简介.ppt





《linux_C语言实现网络通信简介.ppt》由会员分享,可在线阅读,更多相关《linux_C语言实现网络通信简介.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux C语言实现网络通信简介主要内容TCP/IP协议概述Socket基础编程域套接字一、TCP/IP协议概述OSI参考模型及TCP/IP参考模型 负责应用程序的网络访问,通过端口号负责应用程序的网络访问,通过端口号来识别各个不同的进程。来识别各个不同的进程。负责端对端之间的通信会话连接与建立。负责端对端之间的通信会话连接与建立。传输协议的选择根据数据传输方式而定。传输协议的选择根据数据传输方式而定。负责将数据帧封装成负责将数据帧封装成IP数据包,并运行必数据包,并运行必要的路由算法。要的路由算法。负责将二进制流转换为数据帧,并进行数负责将二进制流转换为数据帧,并进行数据帧的发送和接收。数
2、据帧是独立的网络据帧的发送和接收。数据帧是独立的网络信息传输单元。信息传输单元。TCP TCP(TransmissionControlProtocol,传输控制协议),传输控制协议):为应用为应用程序提供可靠的通信连接,实现了从一个应用程序到另一个应用程序程序提供可靠的通信连接,实现了从一个应用程序到另一个应用程序的数据传递。适合于一次传输大批数据的情况,并适用于要求得到响的数据传递。适合于一次传输大批数据的情况,并适用于要求得到响应的应用程序。应的应用程序。建立一次建立一次TCP连接需三次握手,基本过程是服务器先建立一个套接口连接需三次握手,基本过程是服务器先建立一个套接口并等待客户端的连接
3、请求,然后顺序进行三次握手:并等待客户端的连接请求,然后顺序进行三次握手:第一次握手:当客户端调用第一次握手:当客户端调用connect进行主动连接请求时,客户端进行主动连接请求时,客户端TCP发送一个发送一个SYN,告诉服务器客户端将在连接中发送的数据的初始,告诉服务器客户端将在连接中发送的数据的初始序列号;序列号;第二次握手:当服务器收到这个第二次握手:当服务器收到这个SYN后也给客户端发一个后也给客户端发一个SYN,里,里面包含了服务器将在同一连接中发送的数据的初始序列号;面包含了服务器将在同一连接中发送的数据的初始序列号;第三次握手:最后客户再回送一个带有确认顺序号和确认号的数据段第三
4、次握手:最后客户再回送一个带有确认顺序号和确认号的数据段来确认服务器发的来确认服务器发的SYN。到此为止,一个到此为止,一个TCP连接被建立。连接被建立。TCP 三次握手TCP数据报头UDPUDP(UserDatagramProtocol,用户数据报协议):是一种无连,用户数据报协议):是一种无连接协议,不需要像接协议,不需要像TCP那样通过三次握手来建立一个连接。且不对传那样通过三次握手来建立一个连接。且不对传送包进行可靠的保障,适合于一次传输少量数据,其可靠性由应用层送包进行可靠的保障,适合于一次传输少量数据,其可靠性由应用层来负责。同时,一个来负责。同时,一个UDP应用可同时作为应用的客
5、户方或服务器方。应用可同时作为应用的客户方或服务器方。UDP比比TCP能更好地解决实时性的问题,包括网络视频会议系统在内能更好地解决实时性的问题,包括网络视频会议系统在内的众多的客户的众多的客户/服务器模式的网络应用都使用服务器模式的网络应用都使用UDP协议。协议。UDP数据报头二、Socket基础编程socket概述socket概念:概念:在在Linux中的网络编程是通过中的网络编程是通过socket接口来进行的。接口来进行的。socket是是一种特殊的一种特殊的I/O接口,它也是一种文件描述符,是一种常用的进程之接口,它也是一种文件描述符,是一种常用的进程之间通信机制,通过它不仅能实现本地
6、机器上的进程之间的通信,而间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且能够实现不同机器上的进程之间的通信。且能够实现不同机器上的进程之间的通信。socket类型:类型:(1)流式)流式socket(SOCK_STREAM):使用):使用TCP协议协议(2)数据报)数据报socket(SOCK_STREAM):使用数据报协议):使用数据报协议UDP(3)原始)原始socket:主要用于一些协议的开发:主要用于一些协议的开发流式流式socket和数据报和数据报socket的区别:前者在通信之前必须先建立连接,并的区别:前者在通信之前必须先建立连接,并且只能和一方通信;而后者在通信之
7、前不用先建立连接,并且可以和多方通且只能和一方通信;而后者在通信之前不用先建立连接,并且可以和多方通信。信。socketbindrecv/readclosecloserecv/readconnectsocketsend/writesend/write传输数据传输数据传输数据传输数据acceptlistenbind等待客户连接请求的到来等待客户连接请求的到来三次握手过程建立三次握手过程建立TCP连接连接服务器端服务器端客户端客户端TCP协议socket编程的流程图 socketrecvfromsendtobindclosecloserecvconnectsocketsendsend/sendto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux_C 语言 实现 网络 通信 简介

限制150内