MAC帧格式、IPV4数据报格式、TCP报文格式、UDP数据报格式
1、MAC帧格式
类型:2字节,指出数据域中携带的数据应交给哪些协议实体处理
校验码:校验数据段(采用32位CRC冗余校验方式进行校验)
2、IPV4数据报
版本:IP协议版本,这里为4
首部长度:占4位
总长度:占16位,指首部和数据之和的长度
标识:占16位,它是一个计数器,每产生一个数据报就加1
标志:占3位,标志字段的最低位为MF,MF=1表示后面还有分片;MF=0表示最后一个分片。标识字段中间的一位是DF,只有DF=0时才允许分片
片偏移:占13位,它指出较长的分组在分片后,某片在原分组中的相对位置,片偏移一8个字节为偏移单位
首部校验和:占16位,只校验分组的首部,而不校验数据部分
生存时间TTL:占8位,及数据报在网络中通过的路由器数的最大值
协议:占8位,指出使用何种协议,其中6表示TCP,17表示UDP
固定部分20个字节,可变部分40字节,首部最长60字节。
3、TCP报文格式
序号字段:占4个字节,TCP是面向字节流的
确认号字段:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。确认号=N,则表明到序号N-1为止的所有数据都已经收到
数据偏移:占4位,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
保留字段:占6位
标志位:
URG:URG=1时,表明紧急指针有效
ACK:ACK=1时,确认号字段(TCP三次握手里面的ack)才有效
PSH:就收到PSH=1的报文时,就尽快地交付接收应用进程,不用等到整个缓存都填满了后再向上交付
RST:当RST=1时,表明TCP连接中出了很严重的差错,必须释放连接,然后在重新建立连接
SYN:SYN=1、ACK=0,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1、ACK=1
FIN:用来释放一个连接,FIN=1表明此报文段的发送方数据已经传送完毕
窗口字段:占2字节,它指出了现在允许对方发送的数据量
检验和:占2字节,检验范围包括首部和数据这两部分
紧急指针字段:占16位,指出文本中紧急数据共有多少字节
选项字段:长度可变
填充字段:为了使整个首部长度4字节的整数倍
4、UDP报文格式
长度:UDP数据报长度,其最小值是8
校验和:检测UDP数据报在传输中是否出错,有错就丢弃,如果字段全为0,表明不校验。
MAC帧格式、IPV4数据报格式、TCP报文格式、UDP数据报格式的更多相关文章
- IP数据报、TCP报文、UDP报文格式
总是记不得TCP/IP协议的各个协议格式,特在此做个记录,好方便回顾. 信息来自众多网络大神们的总结,我再结合自己的理解整理所得. ================================== ...
- 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 网络层协议 MAC帧、IP数据报、TCP报文 关系 IP地址与硬件地址 链路层与网络层
小结: 1. 网络层两种服务 虚电路服务 virtual circuit 电信网 网络层负责可靠交付 数据报服务 网络层不负责可靠交付 提供灵活的.无连接的.尽最大努力交付的数据报服务 不提供服务 ...
- 运输层5——TCP报文段的首部格式
写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户数据报协议UDP 运输层3--传输控制协议TCP概述 运输层4--TCP可靠运输的工作原理 ...
- 计算机网络(8)-----TCP报文段的首部格式
TCP报文段的首部格式 概述 TCP报文段首部的前20个字节是固定的,因此TCP首部的最小长度是20字节. 源端口和目标端口 各占2个字节,分别写入源端口号和目的端口号. 序列号 占4个字节,表示本报 ...
- [转载]MAC、IP头、TCP头、UDP头帧格式、详解
原文地址:MAC.IP头.TCP头.UDP头帧格式.详解作者:iTudu 转自:http://zoufengfu168.blog.163.com/blog/static/546105520099133 ...
- [TCP/IP] TCP流和UDP数据报之间的区别
TCP流和UDP数据报之间的区别 1.TCP本身是面向连接的协议,S和C之间要使用TCP,必须先建立连接,数据就在该连接上流动,可以是双向的,没有边界.所以叫数据流 ,占系统资源多 2.UDP不是面向 ...
- TCP报文段的首部格式 20字节的固定首部
<---- IP首部 TCP首部 TCP报文段的数据部分 <---- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- 浅析TCP字节流与UDP数据报的区别
转自http://www.linuxidc.com/Linux/2014-11/109545.htm “TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但 ...
- TCP字节流与UDP数据报(转)
关于TCP和UDP的分次发送和接收的问题,困惑了两天,看到这篇文章豁然开朗. 原文链接:http://network.51cto.com/art/201310/413326.htm “TCP是一种流模 ...
- TCP报文段的首部格式
首部20个字节的的固定部分,40个字节的可选部分 (1)源端口和目的端口 (2)序号(是字节流的编号,0-2^32-1),如果超过了mod2^32 (3)确认号:目的主机希望源主机收到的下一个字节序号 ...
随机推荐
- struct的使用
编写一个学生struct,成员有学号(id).姓名(name).成绩(5门课程),随机生成多个学生的学号.姓名和成绩存储到结构体数组.再根据总分进行排名并输出学生的信息和总分. stu.h #ifnd ...
- 20155226 2016-2017-2 《Java程序设计》第7周学习总结
20155226 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 认识时间与日期 六个时间基准: 1.格林威治标准时间 2.世界时 3.国际原子时 4.世界协 ...
- Codeforces801A Vicious Keyboard 2017-04-19 00:16 241人阅读 评论(0) 收藏
A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 【lazy标记得思想】HDU3635 详细学习并查集
部分内容摘自以下大佬的博客,感谢他们! http://blog.csdn.net/dm_vincent/article/details/7769159 http://blog.csdn.net/dm_ ...
- Jersey构建Restful风格的webservices
最近一直在搞老项目的开发工作,很少写博文了.听了两位阿里巴巴大牛的讨论,决定试试用restful风格的webservices看看. 这里用的是Jersey这个框架,刚开始弄,有点麻烦,只能到处查资料. ...
- getpass
getpass模块用于输入信息时不显示,比如输入密码时隐藏.getpass模块接收用户的输入的数据类型是str类型. #!/usr/bin/env python #-*- coding: utf-8 ...
- 打开SQL2008R2配置工具,提示远程调用失败[0x800706be]
卸载了Microsoft SQL Server 2012 Express LocalDB,依然不行. 再卸载Microsoft SQL Server 2014 LocalDB,此时右边显示框已可以显示 ...
- Python: 读写Excel(openpyxl / win32com.client)
项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行. 用python来读写excel,目前找了2 ...
- ARM 编译工具keil 和 IAR 命令行编译和下载
目的 不管是Keil还是IAR对代码补全,高亮等编辑功能支持的不是很好,虽然现在的Keil 5.25对界面的支持好了很多,但是很多人还是青睐于第三方的编辑器,命令行的编译方式可以让我们在使用第三方编辑 ...
- Windows下安装NTP服务器
NTP服务器介绍 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高 ...