TCP/IP协议栈是美国国防部高级研究计划局盘算机网(Advanced Research Projects Agency Network,ARPANET)和其后继因特网使用的参考模子。ARPANET是由美国国防部(U.S.Department of Defense,DoD)赞助的研究网络。
最初,它只连接了美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部分。终极ARPANET发展成为环球规模最大的互连网络-因特网。最初的ARPANET于1990年永世性地关闭。
TCP/IP参考模子分为四个条理:应用层、传输层、网络互连层和主机到网络层。如下图所示。
在TCP/IP模子中,传输层的功能是使源端主机和目的端主机上的对等实体可以进行会话。在传输层界说了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。
TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无不对地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。
在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处置惩罚端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。
UDP协议是一个不可靠的、无连接协议,主要实用于不需要对报文进行排序和流量控制的场合。
2.3、应用层
TCP/IP模子将OSI参考模子中的会话层和表示层的功能归并到应用层实现。
应用层面向不同的网络应用引入了不同的应用层协议。此中,有基于TCP协议的,如文件传输协议(File Transfer Protocol,FTP)、虚拟终端协议(TELNET)、超文本链接协议(Hyper Text Transfer Protocol,HTTP),也有基于UDP协议的。
回到顶部(go to top)
三、TCP/IP报文格式
IP头部(报头)格式:(RFC 791)
分析:
1)版本(Version)字段:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。
2)报头长度(Internet Header Length,IHL)字段:占4比特。是头部占32比特的数字,包罗可选项。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。此字段最大值为60字节。
3)服务类型(Type of Service ,TOS)字段:占8比特。此中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。
当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。这4比特的服务类型中只能置此中1比特为1。可以全为0,若全为0则表示一般服务。服务类型字段声明了数据报被网络系统传输时可以被怎样处置惩罚。
比方:TELNET协议可能要求有最小的延迟,FTP协议(数据)可能要求有最大吞吐量,SNMP协议可能要求有最高可靠性,NNTP(Network News Transfer Protocol,网络消息传输协议)可能要求最小费用,而ICMP协议可能无特殊要求(4比特全为0)。
现实上,大部分主时机忽略这个字段,但一些动态路由协议如OSPF(Open Shortest Path First Protocol)、IS-IS(Intermediate System to Intermediate System Protocol)可以根据这些字段的值进行路由决议。
4)总长度字段:占16比特。指明整个数据报的长度(以字节为单位)。最大长度为65535字节。
5)标志字段:占16比特。用来唯一地标识主机发送的每一份数据报。通常每发一份报文,它的值会加1。
6)标志位字段:占3比特。标志一份数据报是否要求分段。
7)段偏移字段:占13比特。假如一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始的位置。
8)生存期(TTL:Time to Live)字段:占8比特。用来设置数据报最多可以经过的路由器数。由发送数据的源主机设置,通常为32、64、128等。每经过一个路由器,其值减1,直到0时该数据报被丢弃。
9)协议字段:占8比特。指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等。
10)头部校验和字段:占16比特。内容是根据IP头部盘算得到的校验和码。盘算方法是:对头部中每个16比特进行二进制反码求和。(和ICMP、IGMP、TCP、UDP不同,IP不对头部后的数据进行校验)。
11)源IP地址、目的IP地址字段:各占32比特。用来标明发送IP数据报文的源主机地址和接收IP报文的目的主机地址。
12)可选项字段:占32比特。用来界说一些任选项:如记载路径、时间戳等。这些选项很少被使用,同时并不是全部主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,假如不足,必须填充0以达到此长度要求。