IP协议是网络层的主要协议,为上层传输层提供无连接、无状态、不可靠的服务。优点是简单高效。无状态是指各个IP报文是独立传送的,不同步传输状态的信息,所以容易发生重复和乱序的情况。不可靠是指IP协议不能保证数据报一定能被送达,可靠性主要是通过传输层的TCP协议来保证的。

TCP协议是面向连接的协议,是工作在传输层的协议。TCP协议通过三次握手、四次挥手、流量控制、拥塞控制、超时重传、确认报文等机制来保证可靠性。

本文来简单介绍下IP头部和TCP头部的一些重要字段。

1、IP头部

IP头部通常有20字节,加上选项的话,最多不超过60字节。IP数据最大为65535字节。下面来进行逐一分析:

4位版本:指IP协议版本号,是IPV4还是IPV6

4位首部长度:指IP头部的长度,以4字节为单位,最大值为(1111)b × 4 = 60字节

8位服务类型:包含一个4位优先权字段:最小延时,最大吞吐量,最高可靠性和最小费用。(暂时不清楚具体通途,待补充)

16位总长度:表示整个IP数据报的长度,最大为65535,但是由于有MTU的限制,一般达不到这个数值

16位标识:数据报的标识,系统采用边发送边赋值的方式

3位标志:分别为保留区,禁止分片标志,和更多分片标志。DF位设置时表示禁止分区,如果数据报文过大,可能会发送失败。

MF位表示后面还有报文段,如果报文分片的话,除了最后一个分片,其他的报文片都置1

13位片偏移:分片相对于原始报文片开始的偏移

8位生存时间:表示报文到达目的之前,允许经过的路由跳数,没经过1跳,TTL值减一,值减到0的时候,丢弃

8位协议:用来区分上层协议(例如TCP,UDP等)

16位首部校验和:以CRC算法校验数据在传输过程中头部是否损坏

32位源IP地址:发送端的IP地址

32位目的IP地址:目的IP地址

注:

16位标识其实在标识了一个IP报文,如果一个报文被分片了,则该报文的所有分片的头部中16位标识都被填充为某个值

2、TCP头部


同IP头部类似,TCP头部通常也为20字节,带上选项部分,最大不超过60字节下面逐一进行解释。

16位源端口号:指发送端的端口号

16位目的端口号:指目的端的端口号

4位头部长度:同IP头部,表示TCP头部的大小,以4字节为单位。

32位序列号:TCP通信过程中,通过序列号来保证传输过程中数据的有序性

32位确认号:用以对接受到的报文进行确认

保留6位

URG:表示紧急指针

ACK:表示确认号

PSH:通知对端立即从缓冲区取走数据

SYN:表示请求建立连接

FIN:标志要通知对端本端的数据发送要关闭

16位窗口大小:TCP流量控制的手段,告诉发送方本端的接收端缓冲区还能接受多少数据

16位校验和:由发送方填充,接收端用CRC校验算法,用以检查TCP报文在传输过程中是否有损坏


TCP/IP报文头部整理相关推荐

  1. TCP/IP报文头部结构

    IP协议 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 优点:简单,高效. IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太 ...

  2. TCP/IP报文格式

    TCP/IP报文格式 修改浏览权限 | 删除 1.IP报文格式 IP协议是TCP/IP协议族中最为核心的协议.它提供不可靠.无连接的服务,也即依赖其他层的协议进行差错控制.在局域网环境,IP协议往往被 ...

  3. TCP/IP 报文协议学习

    最近在学习流量录制框架goreplay(GitHub - buger/goreplay: GoReplay is an open-source tool for capturing and repla ...

  4. IP协议详解【IP报文头部结构、IP分片、IP路由、IP转发】

    目录 IP协议:全称:Internet Protocol(网际互连协议) IP协议的特点: IP头部结构: IP分片: IP路由: IP转发: IP协议:全称:Internet Protocol(网际 ...

  5. TCP/IP协议头部结构

    一 TCP/IP协议族体系结构 数据链路层:数据链路层主要使用ARP(地址解析协议) RARP(逆地址解析协议)网络层使用IP进行寻址.而数据链路层使用物理地址.网络层必须将目标及其的IP转换为物理地 ...

  6. TCP/IP协议头部结构与解析

    参考  http://blog.sina.com.cn/s/blog_634d74310102vmfn.html IP协议 IP协议(Internet Protocol)是网络层协议,用在因特网上,T ...

  7. TCP/IP 面试题整理

    TCP/IP协议的工作流程如下: ●在源主机上,应用层将一串应用数据流传送给传输层. ●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层. ●在网络层给TCP段加上包括源.目的 ...

  8. Cisco测试命令和TCP/IP连接故障处理整理集合

    Cisco测试命令和TCP/IP连接故障处理 一.故障处理命令 1.show命令: 1) 全局命令: show version :显示系统硬件和软件版本.DRAM.Flash show startup ...

  9. 使用wireshark分析tcp/ip报文之报文头

    以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B. IP头部: TCP头部: http:// ...

  10. html头部协议,TCP/IP协议头部结构体

    //Mac头部,总长度14字节 typedef struct _eth_hdr { unsigned char dstmac[6]; //目标mac地址 unsigned char srcmac[6] ...

最新文章

  1. 强化学习在机器人中的应用
  2. Spring.NET学习笔记9——打造简易的依赖注入框架(练习篇) Level 100
  3. linux父子进程之间之间的区别与联系
  4. 风靡朋友圈的HTML5游戏去哪了
  5. roi计算_计算开放式硬件项目的ROI的6个步骤
  6. java爬虫爬取主流房屋网站
  7. python - easy_install的安装和使用
  8. js实现视频时间段拖拽编辑
  9. 在阿里云上安装MongoDB,并且远程连接
  10. 软件设计师易错题分析总结
  11. java parser .java_JDK的Parser来解析Java源代码详解
  12. 携手网易打造世界杯主题房 YUNIK HOTEL玩转兴趣社交新场景
  13. sop封装与dip封装的语音芯片有何区别?
  14. 嵌入式linux保存参数数据
  15. 给普通人的Python——第四章
  16. 2019重庆大学计算机学院研究生,【计算机】计算机学院举行2019级研究生年级大会...
  17. 史上官场吃喝风:与送礼一样成为通用的规则
  18. 解决导出excel导出名字乱码
  19. abp项目怎样发布到服务器,ABP框架的基础配置及依赖注入讲解
  20. 转战物联网·基础篇02-物联网中的角儿

热门文章

  1. 线性系统的的串联校正
  2. 信号完整性分析学习--16--传输线效应
  3. JDK与JRE的区别
  4. dnmp一键部署搞定的php开发环境基于Docker的LNMP一键安装程序
  5. 微信小程序实现图片上传功能
  6. Vue项目使用file-saver将html转word文件、把html内容下载保存导出到本地生成doc文件包括图片:前端下载利器FileSaver
  7. DarkNet yoloV2 转到caffe使用
  8. 清明上河图对计算机技术的启发,风俗画的定义与《清明上河图》的启示
  9. linux内核的裁剪与移植
  10. Java ftp 上传文件名乱码