TCP/IP回顾   TCP/UCP区别

来源:互联网 发布:中文域名icp备案 编辑:程序博客网 时间:2024/06/07 03:06

打字不易,转载请注明出处!
学习总结,雷同请多多包涵!
学识有限,出错请给予指正!
By铁血、诺言

   

对于tcp/ip协议网上有很多相关信息,今天想写写有关包的封装,其实包的封装就是套用了tcp/ip的模板。

   说到4层tcp/ip模型,不得不说到与之相关的7层OSI参考模型,两者差不多,前者更加简洁些,要问为什么前者流行,反正这是历史遗留问题。tcp/ip文档上是说4层,我们一般认为有5层。

   应用层--------------数据包

   传输层--------------端口号

   网络层--------------IP

   数据链路层----------帧

   物理层--------------比特

 

       A主机的QQ想与B主机的QQ通信。

A写给B的文字就是数据包----->外层封装端口号,表明这是A上的QQ程序软件------->之后再封装IP,表明去往B的网络地址--------->经过ARP查询找到B的MAC地址(中间可能存在代理ARP),然后封装上MAC地址------->最后通过物理介质传到了B。

 

B通过介质收到A的数据包------->拆开二层,看到目的MAC是自己------>接着拆开三层,看到目的ip是自己------>再拆开四层,看到目的端口号,知道这个包应该给QQ程序软件处理,QQ程序解读出A发送的文字。

 

图示的话就是这样        |Payload|IP|MAC|       载荷被IP层包着,IP被MAC层包着。

关于tcp/udp包头啥样,ip包头啥样,二层包头啥样,网上有很多,每层都会有个协议,头部长度,说明上层是什么,本层数据有多少字节,等等。

 

最后在想写写TCP与UDP的区别

简单的说TCP是面向连接,首先要三次握手,告诉对方给我预留处理的资源,我发你数据包你要给我确认;UCP非面向连接,就是数据包不需要得到对方确认。

 

TCP

 

举例:TCP连接就像打电话,对方对你说“喂”,说明两者之间有了一条不间断的通路,这时候我才和对方聊天,不可能对着忙音就开始说话了吧。数据不到达对方,对方就一直在等待,除非对方直接挂电话。先说的话先到,后说的话后到,有顺序。

 

tcp首先必须建立连接,然后是传递数据,当数据传送完成后要拆除连接。

tcp如何保证可靠性

1.使用序列号对数据包进行标记,保证到达顺序与发送顺序相同。

2.TCP有确认机制,当接受者按照顺序识别出数据包不完整时,或者接受者在特定的时间内没有发送确认信息,那么发送者会考虑重传数据包。

3.TCP的滑动窗口,有效的降低了因缓存区满而造成的数据包丢失。

 

UDP

非面向连接,就是不需要通讯的双方建立、维护通话,因为不维护,没有重传机制所以又叫不可靠服务。

 

举例:UDP就象寄一封信,发信者只管发,不管到。但是你的信封上必须写明对方的地址。发信者和收信者之间没有通路,靠邮局联系。信发到时可能已经过了很久,也可能根本没有发到。先发的信未必先到,后发的也未必后到。就是不需要收信人给我确认是否收到。

 

 

睡觉了,睡觉了~~~