在TCP/IP对网络的划分下传输层试很重要的一层,通过阅读《图解TCP/IP》对传输层的TCP/UDP进行总结。

UDP

1、UDP的特点
UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发出来的数据在收到的那一刻,立即按照原来发送到网络上的一种机制。(UDP无法进行流量控制等避免网络拥塞的行为;传输丢包UDP不负责重发;包到达顺序乱掉时没有纠正的功能)

2、UDP应用场景
1、包总量较少的通信(DNS、SNMP等)
2、视频、音频等多媒体通信(即时通信)
3、限定于LAN等特定网络中的应用通信
4、广播通信(广播、多播)

3、UDP首部的格式
除去数据的部分正是UDP的首部。UDP首部由源端口号,目标端口号,包长和校验和组成。

1、源端口号(Source Port)
表示发送端端口号,字段长16位。该字段是可选项,有时可能不会设置源端口号。没有源端口号的时候该字段的值设置为0.可用于不需要返回的通信中。
2、目标端口号(Destination Port)
表示接收端端口,字段长度16位。
3、包长度(Length)
该字段保存了UDP首部的长度之和。单位为字节(8位字节)。
4、校验和(Checksum)
校验和是为了提供可靠的UDP首部和数据而设计。在计算校验和时,附加在UDP伪首部与UDP数据报之前。通过在最后一位增加一个“0”将全长增加16倍。此时将UDP首部的校验和字段设置为“0”.然后以16比特为单位进行1的补码和,并将所得到的1的补码和写入校验和字段。

TCP

1、TCP的特点
为了通过IP数据报实现可靠性传输,TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等实现可靠性传输。
2、TCP应用场景
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。在日常生活中,浏览器,用的HTTP;FlashFXP,用的FTP;Outlook,用的POP、SMTP;Putty,用的Telnet、SSH;
QQ文件传输。
3、TCP首部格式
TCP中没有表示包长度和数据长度的字段。可由IP层获知TCP的包长有TCP的包长可知数据的长度。

1、源端口号(Source Port)
表示发送端端口号,字段长16位。
2、目标端口号(Destination Port)
表示接收端端口号,字段长度16位。
3、序列号(Sequence Number)
字段长32位。序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小。
序列号不会从0或1开始,而是在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机。然后再将没转发过去的字节数累加到初始值上表示数据的位置。此外,在建立连接和断开连接时发送的SYN包和FIN包虽然并不携带数据,但是也会作为一个字节增加对应的序列号。
4、确认应答号(Acknowledgement Number)
确认应答号字段长度32位。是指下一次应该收到的数据的序列号。实际上。它是指已收到确认应答号减一位置的数据。发送端收到这个确认应答以后可以认为在这个序号以前的数据都已被正常接收。
5、数据偏移(Data Offset)
该字段表示TCP所传输的数据部分应该从TCP包的哪个位置开始计算,当然也可以把它看作TCP首部的长度。该字段长4位,单位为4字节。不包括选项字段的话,如图所示TCP的首部为20字节长,因此数据偏移字段可以设置为5。反之,如果该字段的值为5,那说明从TCP包的最一开始到20字节为止都是TCP首部,余下的部分为TCP数据。
6、保留(Reserved)
该字段主要是为了以后扩展时使用,其长度为4位。一般设置为0,但即使收到的包在该字段不为0,此包也不会被丢弃。
7、控制位(Control Flag)
字段长为8位,每一位从左至右分别为CWR、ECE、URG、ACK、PSH、RST、SYN、FIN。这些控制标志也叫做控制位。当它们对应位上的值为1时,具体含义如下



8、窗口大小(Window Size)
该字段长为16位。用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小(8位字节)。TCP不允许发送超过此处所示大小的数据。不过,如果窗口为0,则表示可以发送窗口探测,以了解最新的窗口大小。但这个数据必须是1个字节
9、校验和(Checksum)

TCP的校验和与UDP相似,区别在于TCP的校验和无法关闭。
使用TCP伪首部。为了让其全长为16位的整数倍,需要在数据部分的最后填充0。首先将TCP校验和字段设置位0。然后以16位为单位进行1的补码和计算,再将它们总和的1的补码和放入校验和字段。

10、紧急指针(Urgent Pointer)
该字段长为16位。只有在URG控制位为1时有效。该字段的数值表示本报文段中紧急数据的指针。正确来讲,从数据部分的首位到紧急指针所示的位置为止为紧急数据。因此也可以说紧急指针指出了紧急数据的末尾在报文段中的位置。
11、选项(Options)
选项字段用于提高TCP的传输性能。因为根据数据偏移(首部长度)进行控制,所以长度最大为40字节。


问渠哪得清如许,为有源头活水来之TCP / UDP相关推荐

  1. 问渠哪得清如许,唯有源头活水来-浅谈android 系统

    古人学问无遗力,少壮功夫老始成,纸上得来终觉浅,绝知此事要躬行 android系统是基于Linux平台的开源移动操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成. 底层以Linux内核 ...

  2. 问渠那得清如许,唯有源头活水来

    Java基础的源头就在这里. 是技术,就要经过刻苦的练习才能透彻的掌握,此外无捷径. 抛却一切浮躁,追溯源头,自然清静.

  3. 问渠哪得清如许,为有源头活水来

    问渠哪得清如许,为有源头活水来 如我是一朵雪花,     翩翩的在半空里潇洒, 我一定认清我的方向-- 飞扬,飞扬,飞扬,--     这地面上有我的方向.     不去那冷寞的幽谷,

  4. “问渠哪得清如许?为有源头活水来” – 提高技术源头数据的质量成为技术信息化热点

    越来越多的企业在花费巨资引入国外PLM系统后,发现很难达到当初预计的效果,原因就是技术源头的数据质量不高,PLM系统中管理的垃圾越多,系统的可用性越差. 青岛捷能汽轮机在实施西门子PLM系统后,重新大 ...

  5. 当我发现Python字典中不同key可以有相同哈希值后——问渠那得清如许

    迷雾重重 我们知道,字典的key是不同重复的.那么Python怎么比较两个key是否相同呢?在回答这个问题之前,先来看一段代码. class Position():def __init__(self, ...

  6. 问渠那得清如许?为有源头活水来。——java面向对象的思想

    20169205 2016-2017-2 <移动平台应用开发实践>第2周学习总结 教材学习内容总结 本次作业要求的部分主要是Java高级语言实现面向对象编程的基本方法,其中所介绍的面向对象 ...

  7. 读《移山之道》——问渠哪得清如许,为有源头活水来

    我是以一本看小说的心态看完了这本书,书中人物的角色活灵活现,通过愚公后代如何完成一个软件项目来介绍MSF和VSTS. 对于书中人物对话的小字部分,看起来是非常有趣的,引起了像我们这样刚开始接触软件开发 ...

  8. 问渠哪得清如许?为有源头活水来。——AI与传统文化会碰撞出何种火花呢?

    关乎人文,以化成天下 敦煌博物馆里,数字技术让一尊尊彩塑容颜常驻:电视剧<觉醒年代>,百年前的革命志士与屏幕前的我们跨时空对话:舞蹈诗剧<只此青绿>,用舞台重现大宋美学,为观众 ...

  9. java ssh2工具,SSH2代码生成工SSH2代码生成工具 PowerBy 清如许UnicodePowerBy

    SSH2代码生成工SSH2代码生成工具 PowerBy 清如许UnicodePowerBy SSH2代码生成工具 PowerBy 清如许Unicode 超值只卖2000元的SSH代码生成工具,快来购买 ...

最新文章

  1. Android SimpleAdapter显示ListView、GridView
  2. ###STL学习--标准模板库
  3. 大规模领域词汇库项目DomainWordsDict:涵盖68个领域、共计916万的词汇库资源开放
  4. 疫情与资本寒冬双重危机下,智领云为何能拿到数千万融资?
  5. ASP.NET MVC 4 小项目开发总结
  6. 安装Windows 10 V1909对CPU有什么要求?
  7. 负载均衡算法及手段(转)
  8. linux命令hexdump,Linux中hexdump命令起什么作用呢?
  9. 集成隔离电源的隔离式RS-485/RS-422收发器
  10. linux下安装tecplot记录
  11. css3中translateY、translateX的使用
  12. CCID 设备通讯 (Windows 平台)
  13. 访外国语学院05年毕业生潘锐师姐
  14. 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决
  15. python第六章答案_python第六章
  16. CSDN的会员等级和推荐卡规则
  17. SQL 语句耗时查询
  18. checkmarx : Input path not canocalized 问题解决方法
  19. 锅炉控制系统,西门子200smartPLC程序,昆仑触摸屏程序,带CAD电气图纸
  20. php手册 时间戳,PHP时间戳函数总结一览

热门文章

  1. java label对齐方式_java – 在BorderLayout中对齐JLabel和JTextField
  2. 渗透测试情报收集工具
  3. Android自定义没有资源文件的圆形进度条ProgressBar
  4. (he)的平方等于she
  5. vue加载组件骨架屏el-skeleton使用
  6. html网页中必填符号图片,收集的web页面html中常用的特殊符号大全
  7. 第五季完美童模 亲善大使周懿辰现场走秀回顾
  8. 《西部世界》S2E9:蝶化庄周,浮生若梦
  9. Windows 2003 下 SquirrelMail 的安装
  10. 中级运维这么学才有意思