美文网首页
归纳:深入浅出TCP/IP

归纳:深入浅出TCP/IP

作者: 冰鱼飞鸟 | 来源:发表于2018-05-26 22:43 被阅读0次

    仔细拜读了深入浅出 TCP/IP 协议 很好的深入浅出,虽然内容稍稍多一些,但细且易懂。

    做这个归纳是为了:

    1. 将看到的知识转变为自己的知识,加深印象。
    2. 过程中遇到疑惑的地方,在归纳的过程中进行补充说明。
    2.png
    先根据这张图从上到下做一下各层的总结
    1.应用层:定义了许多应用层协议,来对字节流的这种难以操作的数据格式做了格式规范
    2.传输层:定义了具体的端口,明确了这次请求的源机器/目标机器上的具体应用程序。
    3.网络层:定义了IP地址,明确了这次请求的源/目标机器所在的网段。
    4.链路层:定义了Mac地址,明确了具体是网段的哪台机器。
    其中IP和Port是由应用层传下来的,Mac地址是由网络层中的ARP协议负责找出来的。

    较为细节的部分我们从下层往上讲更容易引发我们的思考。

    1.链路层
    子网广播的方式发送数据,子网中的每个主机都能收到广播,根据以太网数据包中的mac地址来判断这个数据包是不是发给自己的,如果不是则丢弃这个包。

    • 需要的信息:目标的Mac地址(ARP协议提供),目标所在子网(IP协议,路由协议提供)
    • 数据包:把上层提供的数据包包装成以太网数据包(首部,数据,尾部)
      首部:首部固定为14个字节,包含了目标MAC地址、源MAC地址和类型
      数据:最短为46个字节,最长为1500个字节,如果需要传输的数据很长,就必须分 割成多个帧进行发送;
      尾部:固定为4个字节,表示数据帧校验序列,用于确定数据包在传输过程中是否损坏。

    2.网络层

    • 需要的信息:IP(应用层提供)
    • 数据包: 把上层提供的数据包包装成IP数据包Mac地址
      为了提供mac地址需要用到IP协议,ARP协议,路由协议

    (1)IP协议:需要ip地址(应用层传入),来判断源机器和目标机器是否属于同一个子网。

    (2)ARP协议(地址解析协议):需要ip地址(应用层传入)
    ARP会发起一个请求数据包(包含源/目标ip),这个数据包在链路层包装成“以太网数据包目标mac地址全为F以此可以通过数据链路层的验证)”后在一个子网内广播,该子网中的所有主机都收到广播,因为以太网数据包中mac地址都为F,所以通过了链路层验证,网络层通过IP数据包中的IP信息判断是否是发给自己的,如果是则返回Mac地址。
    ARP收到Mac地址的后会将其存到arp缓存中保留一段时间。
    (ps:存在ip-mac的缓存,arp -a 可查看。)

    (3)路由协议:需要ip地址(应用层传入),通过网关路由找到目标IP的子网。
    小结:在不考虑arp缓存的情况下找mac地址有这两种情况。

    • 目标与源机器在同一个子网
      IP协议(判断出在同一个子网) --> ARP协议(通过广播找到目标机器Mac)
    • 目标与源机器不在同一个子网
      IP协议(判断出不在同一个子网) -->路由协议(找到目标机器所在子网)-->ARP协议(通过广播找到目标机器Mac)
    1. 传输层
    • 需要的信息:端口(应用层提供)
    • 数据包:把上一称提供的数据包包装成UDP数据包(首部,数据)
      首部:长度为8个字节,主要包括源端口和目标端口
      数据:最大为65527个字节
    1. 应用层
      应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等。

    最后欢迎大家指正,促进共同进步,谢谢!

    相关文章

      网友评论

          本文标题:归纳:深入浅出TCP/IP

          本文链接:https://www.haomeiwen.com/subject/fbcvjftx.html