1. OSI七层和TCP/IP四层的关系

1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议

UDP:user data protocol 用户数据报协议

2. OSI七层协议模型

应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

3. TCP/IP四层模型

3.1 应用层:对应OSI中的应用层、表示层、会话层

3.2 物理链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

3.3 数据包说明:

IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输

UPD首部

UPD首部格式如下:

UDP 是无连接的,即发送数据之前不需要建立连接

UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。

UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。

UDP 支持一对一、一对多、多对一和多对多的交互通信。

UDP 的首部开销小,只有 8 个字节

  • 端口号:用来表示发送和接受进程。由于 I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值),因此T C P端口号由T C P来查看,而 U D P端口号由UDP来查看。T C P端口号与UDP端口号是相互独立的。
  • 长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为 8字节(发送一份0字节的UDP数据报是 O K)。
  • 检验和:UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动

TCP报文段首部

TCP报文段首部的前20个字节是固定的,后面的字节是根据需要增加的。首部格式如下:

TCP 提供可靠交付的服务,保证数据无差错、不丢失、不重复、按序到达。

TCP 提供全双工通信。

TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP 报文段分为首部和数据两部分

1、第一个4字节:

  • (1)源端口,16位;发送数据的源进程端口
  • (2)目的端口,16位;接收数据的进程端口

2、第二个4字节与第三个4字节

  • (1)序号,32位;代表当前TCP数据段第一个字节占整个字节流的相对位置;
  • (2)确认号,32位;代表接收端希望接收的数据序号,为上次接收到数据报的序号+1,当ACK标志位为1时才生效。

3、第四个4字节:

  • (1)数据偏移,4位;实际代表TCP首部长度,最大为60字节。
  • (2)6个标志位,每个标志位1位;

SYN,为同步标志,用于数据同步; 
            ACK,为确认序号,ACK=1时确认号才有效; 
            FIN,为结束序号,用于发送端提出断开连接; 
            URG,为紧急序号,URG=1是紧急指针有效; 
            PSH,指示接收方立即将数据提交给应用层,而不是等待缓冲区满; 
            RST,重置连接。

  • (3)窗口值,16位;标识接收方可接受的数据字节数。详解可参看:http://www.cnblogs.com/woaiyy/p/3554182.html

4、第五个4字节

  • (1)校验和,16位;用于检验数据完整性。
  • (2)紧急指针,16位;只有当URG标识位为1时,紧急指针才有效。紧急指针的值与序号的相加值为紧急数据的最后一个字节位置。用于发送紧急数据。

IP报文

IP报文是在网络层传输的数据单元,也叫IP数据报。IP报文格式如下图

1、第一个4字节(也就是第一行):

  • (1)版本号(Version),4位;用于标识IP协议版本,IPv4是0100,IPv6是0110,也就是二进制的4和6。
  • (2)首部长度(Internet Header Length),4位;用于标识首部的长度,单位为4字节,所以首部长度最大值为:(2^4 - 1) * 4 = 60字节,但一般只推荐使用20字节的固定长度。
  • (3)服务类型(Type Of Service),8位;用于标识IP包的优先级,但现在并未使用。
  • (4)总长度(Total Length),16位;标识IP数据报的总长度,最大为:2^16 -1 = 65535字节。

2、第二个四字节:

  • (1)标识(Identification),16位;用于标识IP数据报,如果因为数据链路层帧数据段长度限制(也就是MTU,支持的最大传输单元),IP数据报需要进行分片发送,则每个分片的IP数据报标识都是一致的。
  • (2)标志(Flag),3位,但目前只有2位有意义;最低位为MF,MF=1代表后面还有分片的数据报,MF=0代表当前数据报已是最后的数据报。次低位为DF,DF=1代表不能分片,DF=0代表可以分片。
  • (3)片偏移(Fragment Offset),13位;代表某个分片在原始数据中的相对位置。

3、第三个四字节:

  • (1)生存时间(TTL),8位;以前代表IP数据报最大的生存时间,现在标识IP数据报可以经过的路由器数。
  • (2)协议(Protocol),8位;代表上层传输层协议的类型,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
  • (3)校验和(Header Checksum),16位;用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。

4、第四个四字节:源IP地址

5、第五个四字节:目的IP地址

以太网的帧格式如下所示:

在图中,帧末尾就是CRC校验码。

此外,对其他字段解释如下:

字段 Meaning
目的地址 MAC地址
源地址 MAC地址
类型 三种值,分别对应IP、ARP、RARP

最常用的 MAC 帧是以太网V2的格式

注:

  1. 以太网帧中的数据长度规定最小46字节,最大1500字节。ARP和RARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最⼤大传输单元MTU,不同的网络类型有不同的MTU。如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)。
  2. ifconfig命令的输出中也有“MTU:1500”。注 意,MTU这 个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。
  3. MAC地址是指网卡的硬件地址,长度是48位。是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。

TCP/IP四层模型及各层协议首部详述(包含IOS7层)相关推荐

  1. TCP/IP四层模型各层主要协议详述

    1.一张表理清 OSI七层和TCP/IP四层的关系 2.TCP/IP模型 (1)物理层 物理层规定:为传输数据所需要的物理链路创建.维持.拆除,而提供具有机械的,电子的,功能的和规范的特性,确保原始的 ...

  2. TCP/IP四层模型重点协议解析

    文章目录 应用层 DNS协议 NAT NAPT 传输层协议 TCP UDP UDP协议段格式 UDP特点 基于UDP的应用层协议 ※ 经典面试题 网络层协议 IP协议 数据链路层协议 以太网 以太网帧 ...

  3. 网络通信——ISO7层协议与TCP/IP 四层模型

    ISO7层协议与TCP/IP 四层模型 前言 1. ISO7层协议 2.TCP/IP四层模型 3.两者之间的关联 前言 参考链接:原文链接 1. ISO7层协议 ISO7层模型从第一层至第七层: 物理 ...

  4. TCP/IP四层模型与OSI七层参考模型(网络协议)

    TCP/IP四层模型与OSI七层参考模型 一. OSI七层参考模型 ①. 物理层 ②. 数据链路层 ③. 网络层 ④. 传输层 ⑤. 会话层 ⑥. 表示层 ⑦. 应用层 二. TCP/IP模型 ①. ...

  5. 信息系统项目管理师教程(第3版)- OSI七层模型TCP/IP四层模型对应网络协议

    一.OSI七层模型: 1.应用层 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 2.表示层 数据的表示. ...

  6. OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系

    OSI七层协议模型.TCP/IP四层模型和五层协议体系结构之间的关系 一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Ses ...

  7. OSI七层协议模型、TCP/IP四层模型学习笔记

    1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...

  8. TCP/IP四层模型及各层协议首部详述

    1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...

  9. TCP/IP四层模型(协议簇)各层作用

    OSI七层模型是国际标准,分为七层,概念清晰,但却过于复杂,由此演变出了一个事实标准即TCP/IP四层模型,这个模型将应用层.表示层.会话层合并为一层应用层,将数据链路层.物理层合并为链路层. OSI ...

最新文章

  1. formatData
  2. 荐读:五月最值得阅读的15篇人工智能文章
  3. 【转】android自定义控件
  4. 在控制台程序中使用MFC类
  5. 笔记-知识产权与标准化知识-GB/T-12504-1990计算机软件质量保证计划规范
  6. 深入到系统组件是否白盒测试_2019年系统集成项目管理工程师:第一章 信息化知识(三)要点?...
  7. CSS常见的四种垂直居中的方法
  8. charts引入icon图片_v-charts 踩坑之路
  9. java运行时内存分配详解
  10. Hibernate缓存和加强
  11. 迪士尼确认《花木兰》档期:7月24日北美等多地上映
  12. MCU——简易单片机按键驱动程序分析
  13. linux NFS 配置步骤
  14. OPENCV中滑动条的使用
  15. 产品经理常见沟通问题
  16. Python之路(一)
  17. 手机电脑都能用,将照片转成PDF的免费方法
  18. 韩国5G产品定价及营销策略剖析
  19. 阿里云服务器,腾讯云服务器,华为云服务器被攻击了怎么办?
  20. WHQL认证如何给驱动程序做数字签名

热门文章

  1. 推荐我们在B站的生信程序基础课
  2. python 结构体数组_python实现结构体数组(初始化并赋值)
  3. 小学C++编程入门书籍及相关资料介绍(二) 算法篇
  4. Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
  5. matlab中float类型的_Java局部变量类型推断(Var类型)的26条细则
  6. Android安全笔记-Android签名文件及初略架构
  7. Android逆向笔记-使用Android Studio调试Smali代码(方式二)
  8. Java笔记-Spring Boot Webservice中对指定namespace及localpart进行拦截
  9. Java工作笔记-Java函数参传值传引用问题
  10. C语言工作笔记-函数指针的使用(补充C回调系统)