小白对部分TCP/IP协议的简单理解

TCP/IP是一个协议族的统称。里面有IP协议,IMCP协议,TCP协议,以及我们所熟悉的http、ftp、pop3协议等等。

协议分层

TCP/IP协议族按照层次由上到下。最上面的是应用层,这里面有http,等协议。第二层则是传输层, TCP和UDP协议就在这层。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再下一层则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式(有些并不将其放在tcp/ip协议族中)。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。

对TCP/UDP的理解

UDP

TCP/UDP 位于传输层,与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。

由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了2000端口,那么,以后从外面传进来的目的端口号为2000的UDP包都会交给该程序。端口号理论上可以有2^16这么多。因为它的长度是16个bit。

UDP检验和,这是一个可选的选项,并不是所有的系统都对UDP数据包加以检验和数据(相对TCP协议的必须来说),但是RFC中标准要求,发送端应该计算检验和。

UDP检验和覆盖UDP协议头和数据,这和IP的检验和是不同的,IP协议的检验和只是覆盖IP数据头,并不覆盖所有的数据。UDP和TCP都包含一个伪首部。伪首部还包含IP地址这样的IP协议里面都有的信息,目的是让UDP两次检查数据是否已经正确到达目的地。如果发送端没有打开检验和选项,而接收端计算检验和有差错,那么UDP数据将会被悄悄的丢掉,而不产生任何差错报文。

UDP长度,可以有65535字节那么长。但是通常情况下网络在传送的时候,一次普通传送不了那么长的协议,就只好对数据分片,当然,这些是对UDP等上级协议透明的,UDP不需要关心IP协议层对数据如何分片。

TCP

与UDP相比TCP提供了一种可靠的数据传输服务,TCP是面向连接的,换而言之,其利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。因此TCP要比UDP可靠的多,UDP是把数据直接发出去的,而不管对方是否在收信,就算是UDP无法送达,也不会产生ICMP差错报文等提示。应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段。

当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。

TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过中的任何变化。

这是小白的简单理解,请大佬们多多指教。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值