归纳:深入浅出TCP/IP

2018-05-26  本文已影响0人  冰鱼飞鸟

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

做这个归纳是为了:

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

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

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

2.网络层

(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地址有这两种情况。

  1. 传输层
  1. 应用层
    应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等。

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

上一篇 下一篇

猜你喜欢

热点阅读