A. 谢有TCP/IP详解的代码有能发我一分吗
一、分层
1、网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。
2、TCO/IP通常被认为是一个四层协议系统:
1)、链路层,有时候也被称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2)、网络层,有时也称作互联网层,处理分组在网络中的活动。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(internet互联网控制报文协议),以及IGMP协议(internet组管理协议)。
3)、运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。
4)、应用层负责处理特定的应用程序细节。
3、在TCP/IP协议族中,网络层IP提供的是一个不可靠的服务,它只是尽可能快地把分组从源节点送到目的节点,不提供任何可靠性的保证。另一方面,TCP在不可靠的IP层上提供一个可靠的运输层。
二、TCP/IP的分层
1、TCP/IP协议族中不同层次的协议
1)、帧头和帧尾所标注的数字是典型以太网首部的长度。
2)、以太网数据帧的物理特性是其长度必须在46~1500字节之间。
3)、图中IP和网络接口层传送的数据单元应该是分组。分组既可以是一个IP数据报,也可以是IP数据报的一个片。
4)、UDP数据和TCP数据基本一致。唯一不同的是UDP传送给IP的信息单元称作UDP数据报,而UDP首部的长度为8位。
5)、由于TCP、UDP、ICMP、IGMP都要向IP传送数据,因此IP必须在生成的IP首部加入某种标识,以表明数据属于那一层。IP在首部存入一个长度为8位的数值,称作协议域。1表示IGMP协议,2表示ICMP协议,6表示TCP协议,17表示UDP协议。
6)、TCP、UDP、网络接口也要在首部加入标识符。
2、当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要添加一些首部信息(有时还要添加尾部信息)。
3、TCP传给IP的数据单元称作TCP报文段或简为TCP段,IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作数据帧。
六、分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由低往上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接受数据的上层协议。这个过程称作分用。还有以太网数据帧的分用过程
七、客户-服务器模型
1、服务器提供的服务分两种类型:
1)、重复型
2)、并发型
2、重复型服务器通过以下步骤进行交互:
I、等待一个客户请求的到来
II、处理客户请求
III、发送响应给发送请求的客户
IV、返回第I步
3、并发型服务器采用以下步骤:
I、等待一个客户请求的到来
II、启动一个新的服务器来处理这个请求
III、返回第I步
4、一般来说,TCP服务器是并发的,而UDP服务器是重复的,但也存在一些例外。
八、端口号
1、服务器一般都是通过知名端口号来识别的。客户使用临时设定的端口号。
2、大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的。
3、Uinx系统有保留端口号的概念。只有超级用户特权的进程才允许给它自己分配一个保留端口号。