手记

网络分层模型和TCP/IP协议族(下篇)

网络分层模型和TCP/IP协议族 ——IP协议

这一篇文章主要记录IP协议相关内容。

IP协议是干什么的?

寻址 + 路由选择

寻址中的址是什么?

首先,它不是mac地址,而是ip地址,那么ip地址又是个什么东西呢?



我在这里,举一个简单的例子:





因为二进制数写起来和读起来都比较费劲,所以我们一般都换算为十进制。

其对应的子网掩码是这样的

11111111 11111111 11111111 00000000

转换为十进制,也就是:
255 255 255 0

接着我们来依次对应下,这张图可以清楚的表示:



这里还提到了一个有意义的简写

如果子网掩码的前24位都是1的话,那么我们可以这样简写:/24

接下来补充一下,常见的ip地址列表。

ip地址列表





image.png

这里的127.0.0.1 环回也就是 本机地址。

寻址+路由

ip协议中的路由分配以及寻址是怎么个过程呢?接下来慢慢分析。

同一个内网传递数据

给出一个case:

同一个网段下,computerA想给computerB发送数据。

步骤:

  • 首先,对应的是应用层

  • 然后,把它扔进了TCP协议里,给它加上了端口,比如这里的80

  • 再然后,扔进IP协议,包装上了ip地址

  • 接着,扔进以太网,包装mac地址
    注意:在上一篇以太网中已经提到,如何通过ip地址找到**发送目标的**的mac地址,这里不再赘述







这样打包完成后,我们就可以顺畅的把数据发出去啦~

网络间的数据传送

说完了内网之间的数据传送,接下来我们说说非内网间,它是怎么进行数据传送的。



computerA(192.168.0.1)准备给不同网段的computerB(172.16.0.1)发送数据

步骤:

  • 先发给网关,具体同上

  • 然后发给路由器A

  • 路由器上都有个路由表



  • 查看是否直连

  • 同上进行发送

IP分片和重组



路径发现MTU
我觉得这个机制还是挺有意思,简单来说,我们在发送数据帧的时候,如果它的大小超过网络MTU,那么它会停止发送,并自动调整路径,再重新发送。这个还是挺智能的。

IP相关协议



其实常用的也就是dns,其他的做个了解就可以了。


网络分层模型和TCP/IP协议族 —— TCP/UDP

UDP

UDP协议主要讲 端口 + 校验和

优点:简单 快

端口

端口用于区别不同的程序或者进程

特殊端口



校验和



TCP

TCP的header比UDP 复杂很多



如何连接?tcp的三次握手



进行第一次数据传输



关闭连接



说到这里,大家都知道TCP因为比较复杂繁琐,所以它的速度没有UDP快,为了解决这个问题,然后引入了一个滑动窗口的策略机制

滑动窗口

简单来说,滑动窗口就是增加并行,让数据发送量*3,可以同时发送3份数据

拥塞控制

慢启动



0人推荐
随时随地看视频
慕课网APP