• TCP/IP协议的数据传输过程详解——IP与以太网的包收发操作


    MTU:一个网络包的最大长度,以太网中一般是1500字节;(含有头部长度,包括IP头部,TCP头部,不包括MAC头部)

    MSS:除去头部后,一个网络包所能容纳的TCP的数据的最大长度

    下图为TCP/IP软件的分层结构:

    其中,IP中ICMP协议用于告知网络包传送过程中产生的错误及各种控制信息,ARP协议用于根据IP地址查询相应的以太网的MAC地址。

     TCP模块在执行连接、收发、断开等各阶段的操作中,都需要委托IP模块将数据封装成包发送给通讯对象。

    下面介绍一下网络包的一些基本知识:

    包是由头部和数据两部分组成。

    头部包含目的地等控制信息,头部后面就是委托方要发给对方的数据。

    下面是TCP/IP包的结构:

     

     

    简单区分一下路由器和集线器的区别:

    它们在传输网络包的时候有各自的分工:

    1、路由器是根据IP规则传输包的设备,根据目标地址判断下一个路由器的位置

    2、集线器是按照以太网规则传输包的,在子网中将网络包传到下一个路由。

    下图是包收发操作的整体过程:

    包收发操作的起点就是TCP模块委托IP模块发送包的操作,这个委托的过程就是在TCP模块在数据块的前面加上TCP头部,然后整个传递给IP 模块,这部分就是网路包中的内容。

    与此同时,TCP模块还需要指定通信对象的IP地址,收到委托后,IP模块会将包的内容当做一个整块数据,在前面加上包含控制信息的头部。

    IP模块会添加IP头部和MAC头部这两个,其中,IP头部中包含IP协议规定、根据IP地址将包传送到目的地的控制信息;MAC头部包含通过以太的局域网将包传输至最近路由器所含的控制信息。

    IP头部包含很多控制信息,其中重要的是包将发送到哪里的IP地址,这是应用程序提供的;IP头部中还需要填写发送方的IP地址,需要IP模块利用路由表进行判断,即判断发送使用的网卡。

    MAC地址是在网卡生产时写在ROM里面的,是全世界唯一的一串地址,是生成网卡时写入的,根据IP地址查询MAC地址。

    我们通过ARP协议查询目标路由器的MAC地址,发送广播来查询即可:问:**IP地址是谁的? 答:**IP地址是我的,我的MAC地址是**。为了防止网络中增加很多ARP包,我们会有一个ARP缓存空间中保存查询到的MAC地址。

  • 相关阅读:
    no-return-assign (Rules) – Eslint 中文开发手册
    CSS 字体图标
    CSS 元素的显示与隐藏
    CSS 定位
    CSS 清除浮动
    CSS 浮动
    java 运算符
    Java 初识
    CSS3 完善盒模型
    CSS 盒子模型
  • 原文地址:https://www.cnblogs.com/fish-101/p/10505177.html
Copyright © 2020-2023  润新知