TCP/IP 四层模型

  • TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。

OSI 7层模型

  • 物理层:主要定义物理设备标准(网线的接口类型、光纤的接口类型、各种传输介质的传输速率),作用:传输比特流,就是将高低电平(0,1)转化为电流强弱来进行传输,到达目的地之后再转化为高低电平(0,1)这就是我们平时所说的数模转换与模数转换,这一层的数据叫做比特
  • 数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的9600、8、N、1(波特率,数据位,校验位,停止位)
  • 网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择,而网络层正是管理这种连接的层。网络层负责的传输(这里的“”指主机路由器
  • 传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP,UDP。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做传输层负责的传输(这里的“”指源主机目的主机
  • 会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。
  • 表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。
  • 应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如 telnet、http、ftp)提供网络服务。

网络层的IP协议详解

  • 网络层的IP协议是构成internet的基础。internet上的主机通过IP地址来标识,internet上有大量路由器负责根据IP地址选择合适的路径转发数据包,数据包从internet上的源主机到目的主机往往要经过十多个路由器。路由器是工作在第三层(网络层)的网络设备,同时兼有交换机(和网卡一样工作在链路层)的功能,可以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层链路层两层首部并重新封装。IP协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应用程序中提供支持。

数据包封装

  • 不同的协议层对数据包有不同的称谓,在传输层叫做数据段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
  • IP和网络接口层之间传送的数据单元应该是分组( packet)。分组既可以是一个IP数据报,也可以是IP数据报的一个片(fragment)。

以太网帧格式


以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片(fragmentation)。ifconfig命令输出中也有“MTU:1500”。注意,MTU这个概念指数据帧中有效载荷的最大长度,不包括帧头长度。

ARP数据报格式


看一个具体的例子。 请求帧如下(为了清晰在每行的前面加了字节计数,每行16个字节): 以太网首部(14字节) 0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06 ARP帧(28字节) 0000: 00 01 0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37 0020: 00 00 00 00 00 00 c0 a8 00 02 填充位(18字节) 0020: 00 77 31 d2 50 10 0030: fd 78 41 d3 00 00 00 00 00 00 00 00

  • 以太网首部:
    * 目的主机采用广播地址,
    * 源主机的MAC地址是00:05:5d:61:58:a8,
    * 上层协议类型0x0806表示ARP。
  • ARP帧:
    * 硬件类型0x0001表示以太网,
    * 协议类型0x0800表示IP协议,
    * 硬件地址(MAC地址)长度为6,
    * 协议地址(IP地址)长度为4,
    * op为0x0001表示请求目的主机的MAC地址,
    * 源主机MAC地址为00:05:5d:61:58:a8(假设)
    * 源主机IP地址为c0 a8 00 37(192.168.0.55)(假设)
    * 目的主机MAC地址全0待填写,
    * 目的主机IP地址为c0 a8 00 02(192.168.0.2)(假设)
  • 由于以太网规定最小数据长度为46字节,ARP帧长度只有28字节,因此有18字节填充位,填充位的内容没有定义,与具体实现相关。`

应答帧如下: 以太网首部 0000: 00 05 5d 61 58 a8 00 05 5d a1 b8 40 08 06 ARP帧 0000: 00 01 0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02 0020: 00 05 5d 61 58 a8 c0 a8 00 37 填充位(18字节) 0020: 00 77 31 d2 50 10 0030: fd 78 41 d3 00 00 00 00 00 00 00 00

  • 以太网首部:
    * 目的主机的MAC地址是00:05:5d:61:58:a8,
    * 源主机的MAC地址是00:05:5d:a1:b8:40,
    * 上层协议类型0x0806表示ARP。
  • ARP帧:
    * 硬件类型0x0001表示以太网,
    * 协议类型0x0800表示IP协议,
    * 硬件地址(MAC地址)长度为6,
    * 协议地址(IP地址)长度为4,
    * op为0x0002表示应答,
    * 源主机MAC地址为00:05:5d:a1:b8:40,
    * 源主机IP地址为c0 a8 00 02(192.168.0.2),
    * 目的主机MAC地址为00:05:5d:61:58:a8,
    * 目的主机IP地址为c0 a8 00 37(192.168.0.55)。

如果源主机和目的主机不在同一网段,ARP请求的广播帧无法穿过路由器,源主机如何与目的主机通信?
答:ARP一般只在局域网起作用,即两个主机在同一个网段,虽然部分路由器有ARP代理功能,但也不可能把广域网上所有的地址都代理。所以在两个不同的网段进行访问的时后,当发现目的地址不是本网段IP的时候,将会把数据包发送给网关处理(一般网关就是路由器来做的),路由器此时就发挥他的路由功能进行IP路由.(查询路由表)

OSI的7层模型和TCP/IP四层模型相关推荐

  1. 【重难点】【计算机网络 01】OSI 七层模型和 TCP/IP 四层模型、IP 地址分为哪几类、ping 的原理、从浏览器地址栏输入 URL 到显示网页的过程、什么是 socket

    [重难点][计算机网络 01]OSI 七层模型和 TCP/IP 四层模型.IP 地址分为哪几类.ping 的原理.从浏览器地址栏输入 URL 到显示网页的过程.什么是 socket 文章目录 [重难点 ...

  2. OSI七层模型和TCP/IP四层模型详解

    OSI七层模型 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型 ...

  3. 网络分层(OSI7层模型和TCP/IP四层模型)

    1 OSI七层模型 1.1 物理层 主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后再转化 ...

  4. ISO七层模型和TCP/IP四层模型

    ISO七层模型包含的设备: 应用层:网关(gateway) 会话层:网关(gateway) 表示层:网关(gateway) 传输层:网关(gateway) 网络层:路由器(Router) 数据链路层: ...

  5. 深入浅出-网络OSI七层模型和TCP/IP四层模型

    OSI 模型(Open System Interconnection model)是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架. 它将计算机 ...

  6. 大白话聊OSI七层模型和TCP/IP四层模型

    https://cloud.tencent.com/developer/article/1732190

  7. 【计算机网络基础】-- OSI的七层模型和TCP/IP的五层模型

    [计算机网络基础]-- OSI的七层模型和TCP/IP的五层模型   大家好,我是Lampard~~ 欢迎来到计算机网络基础系列的博客 OSI七层模型 开放式系统互联通信参考模型(英语:Open Sy ...

  8. 简述osi七层模型和TCP/IP五层模型

    简述osi七层模型和TCP/IP五层模型 1 osi七层模型 2 osi七层模型各层功能定义 这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层.后面我也会根据个人 ...

  9. OSI七层协议模型和TCP/IP四层模型

    OSI七层协议模型和TCP/IP四层模型 对于一个请求,用户一般只会在乎他的请求响应结果是啥,往往都不都不知道在这个请求背后发生了什么.now,我们来了解一下背后的故事之请求去哪了. 神图镇楼... ...

最新文章

  1. 【组队学习】【28期】数据采集从入门到精通
  2. oracle触发器 条件,oracle触发器的定义和使用
  3. C++中友元类使用场合
  4. SRM598 Div1
  5. python 非法字符处理
  6. C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码...
  7. 吴恩达机器学习作业Python实现(四):神经网络(反向传播)
  8. android内存泄露_Java应用程序中的内存泄漏及内存管理
  9. 2021-09-08推荐系统,巧妇难为无米之炊,我首先需要历史数据
  10. 等级保护测评三级-安全通用要求大纲
  11. 学习C语言——字母金字塔
  12. Windows10关闭自动更新
  13. Android 10.0SystemUI下拉状态栏隐藏下拉快捷开关两种方法
  14. python实现千牛客服自动回复语_淘宝客服自动回复语录(客服自动回复大全)
  15. 用TinySpider进行网页抓取实例
  16. it技术交流社区与学习资料的网站大全
  17. Java游戏开发——对对碰
  18. 智慧医院信息化建设整体解决方案
  19. C++大学教程(第二版)c++how to program Second Edition --电子工业出版社【美】harvey M.Deitel and paul James Deitel(更新中)
  20. 除了爱你的人,这个世界没人会记得你

热门文章

  1. Python将图片写到音频频谱
  2. 最新数字藏品系统源码一套+价值9000缘
  3. 苹果X 顶部和底部留白问题
  4. 【EE308FZ Lab2-2】An Amazing Android App for Bobing Game
  5. MTFCSGO准心设置
  6. 加班多?交友范围窄?单身互联网人点进来!
  7. 分布式全链路跟踪系统-skywalking
  8. Cookie在前端写还是后端?
  9. CF 1646C Factorials and Powers of Two
  10. Delphi中的线程类--之(2)