目录
TCP/IP的四个层次
链路层
也称为数据链路层和网络接口层,通常包括操作系统中的设备驱动和计算机中对应的网络接口卡
网络层
也称互联网层。处理分组在网络中的活动,例如分组的选路。
IP协议(网际协议),ICMP协议(internet互联网控制报文协议),IGMP(internet管理组协议)
运输层
为两台主机上的应用提供端到端的通信。在TCP/IP协议族中,由TCP和UDP协议。
TCP为两台主机提供高可靠的数据通信。所做工作包括把应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于提供了可靠的端到端的通信,应用层可以忽略这些细节。
UDP为应用层提供非常简单的服务,只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据包能到达另一端,任何必须的可靠性必须由应用层提供。
应用层
负责处理特定的应用程序细节,几乎各种不同的TCP/IP实现都会提供以下这些通用程序:
telnet远程登录,ftp文件传输协议,smtp简单邮件传输协议,snmp简单网络管理协议
TCP通过以下方式提供可靠性
1.应用数据被分割成tcp认为最合适发送的数据块。而udp是应用程序产生的数据报长度将保持不变。
2.当tcp发出一个段后,它启动一个定时器,等目的端确认收到报文段,如果不能及时收到一个确认,将重发这个报文段。
3.当tcp收到发自tcp连接另一端的数据,他将发送一个确认,这个确认不是立即发送,通常将推迟几分之一秒。
4.tcp将保持他的首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的变化,如果收到的检验和由差错,tcp将丢弃这个报文段和不确认收到此报文段(希望发送端超时并重发)
5.既然ip数据报会发生重复,tcp的接收端必须丢弃重复的数据。
6.tcp还能提供流量控制.tcp连接的每一方都有固定大小的缓冲空间。tcp的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这防止较快主机之事较慢主机的缓冲区溢出。
tcp超时与重传
tcp提供可靠的传输层,使用的方法之一就是确认从另一端收到的数据。但是数据和确认都有可能丢失。
tcp通过在发送时设置定时器解决这个问题,如果当定时器溢出时还没有收到确认就重传该数据。
对每个连接,tcp管理4个不同的定时器:
1.重传定时器适用于当希望收到另一端的确认
2.坚持定时器,使窗口信息大小保持不断流动,即使另一端关闭了其接收窗口。
3.保活定时器可以检测到一个空闲连接的另一端何时崩溃或重启
4.2msl定时器测量一个连接处于time_wait状态的时间
往返时间测量
tcp超时与重传中最重要的部分是对一个给定连接的往返时间的测量。由于路由器和网络流量都会发生变化,因此认为这个时间可能经常发生变化,tcp应该跟踪这些变化并相应的改变超时时间。