网络协议初识

(2020年10月10日记

协议三要素

* 语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等;

* 语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义;

* 顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值;


网络模型

应用层

通过DNS或HTTPDNS找到最终地址ip,使用HTTP或HTTPS协议进行封装;通过socket编程把应用层的包交给下一层完成;

示例1

传输层

无连接协议UDP,面向连接协议TCP(所谓的面向连接就是,TCP 会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达);

示例2

网络层

网络层的协议是 IP 协议。在 IP 协议里面会有源 IP 地址,即浏览器所在机器的 IP 地址和目标 IP 地址;通过ARP 协议,确定网管的 MAC 地址;

示例3

MAC 层

通过MAC地址到达网关。网关收到包之后,会判断下一步应该怎么走。网关往往是一个路由器,到某个 IP 地址应该怎么走,这个叫作路由表。通过路由算法,来指导数据包往那里传输(常用的有 OSPF 和 BGP);

最后一个网关知道这个网络包就是要去这个局域网的,于是拿着目标IP通过ARP协议给网关回复一个MAC地址,网络包在最后那个网关修改目标的MAC地址,通过这个MAC地址,网络包找到了目标服务器。

示例4


目标服务器发现 MAC 地址对上了,取下 MAC 头来,发送给操作系统的网络层。发现 IP 也对上了,就取下 IP 头。IP 头里会写上一层封装的是 TCP 协议,然后将其交给传输层,在这一层里,对于收到的每个包,都会有一个回复的包说明收到了,ack;

这个超时重传机制,不是浏览器重新将请求url这个动作重新请求一次。 这个超时重传机制是TCP层在不断的闷头重试。 超时重传机制如何才能停止呢? 1.TCP连接断了。 2.发送端(客户端)收到了报平安的包。

TCP 头中有目标端口号,通过这个端口号,可以找到目标网站的进程正在监听这个端口号,假设一个 Tomcat,将这个包发给目标网站。

目标网站处理完成会返回一个HTTP或HTTPS包,会像来的时候一样返回浏览器;

总结


1、怎么查看 IP 地址?

在 Windows 上是 ipconfig,在 Linux 上是 ifconfig,ip addr。

2、IP设计时犯的错误?

低估了未来网络的发展,32位地址不够用。于是有了现在IPv6(128位)

分类错误。分成了5类。C类太少,B类太多。C类254个,网络都不够;D类6万多,给企业都太多。

D 类是组播地址。使用这一类地址,属于某个组的机器都能收到。这有点类似在公司里面大家都加入了一个邮件组。发送邮件,加入这个组的都能收到。组播地址在后面讲述 VXLAN 协议的时候会提到。

私有IP地址范围: A类: 10.0.0.0 - 10.255.255.255 B类: 172.16.0.0 - 172.31.255.255 C类: 192.168.0.0 - 192.168.255.255

3、IP地址scope是什么意思?

对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。

4、lo是什么意思?

lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

5、< BROADCAST,MULTICAST,UP,LOWER_UP > 是干什么的?

net_device flags,网络设备的状态标识。

UP 表示网卡处于启动的状态;

BROADCAST 表示这个网卡有广播地址,可以发送广播包;

MULTICAST 表示网卡可以发送多播包;

LOWER_UP 表示 L1 是启动的,也即网线插着呢。

6、MTU1500 是指什么意思呢?是哪一层的概念?

最大传输单元 MTU 为 1500,这是以太网的默认值。

MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。

7、qdisc pfifo_fast 是什么意思呢?

排队规则。规定数据包如何进出的。有pfifo, pfifo_fast。


无类型域间选路(CIDR)将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号。伴随着 CIDR 存在的,一个是广播地址,另一个是子网掩码。将子网掩码和 IP 地址按位计算 AND,就可得到网络号。

举例:10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号。广播地址,10.100.122.255,如果发送这个地址,所有 10.100.122 网络里面的机器都可以收到,子网掩码,255.255.255.0,网络号10.100.122.0

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。