层 | |
---|---|
链路层(MAC层) | 帧 , frame |
网络层 (IP层) | 数据报,片,Datagram |
传输层 | 报文段,segment |
应用层 | 报文,message,完整的信息 |
1. 物理层
2台电脑相连,网线交叉,配置这两台电脑的 IP 地址、子网掩码和默认网关,比如,一个是 192.168.0.1/24,另一个是 192.168.0.2/24
就构成了一个最小的局域网,LAN可以玩联机局域网游戏
2台以上电脑相连: 集线器Hub。这种设备有多个口,多台电脑连接起来。集线器完全在物理层工,会将自己收到的每一个字节,都复制到其他端口上去, 很浪费
但是物理层,不知道是不是发给自己的 ,一起发数据会乱, 发错了也没错误校验机制
2. 数据链路层(MAC层)
帧 frame 本层的分组
-
Medium Access Control,即媒体访问控制
控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。叫做多路访问 -
如果是发给网关, 操作系统启动的时候,就会被 DHCP 协议配置 IP 地址,默认的网关的 IP 地址 192.168.1.1, 有这个网关IP ,通过ARP协议到达网关:
局域网内靠MAC传输, 但是不知道网关MAC, 只好先群发192.168.1.1,
只有网关会回应自己的MAC,加上MAC头, 下一层就知道下面一段路怎么发了
为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。 -
集线器Hub 是广播的,不管某个接口是否需要,所有的 Bit 都会被发送出去,然后主机把MAC头拿掉, 和自己的 MAC 地址相符,就上交给网络层(上一层),
太浪费了 , 因此需要知道设备的哪个口对应哪个设备 :
交换机:
一台 MAC1 电脑将一个包发送给另一台 MAC2 电脑。交换机会记住MAC1是来自一个明确的口。以后有包的目的地址是 MAC1 的,直接发送到这个口就可以了。
过了一段时间之后,就有了转发表,基本上不用广播了,全部可以准确转发。当然,每个机器的 IP 地址会变,所在的口也会变,因而转发表,是有一个过期时间的。
虽然全球MAC是唯一的, 但是不可能有个全球的MAC map, IP地址是分层的
- CRC 循环冗余检测 通过 XOR 异或的算法,来计算整个包是否在发送的过程中出现了错误
但是网络很大, 点对点通信 需要多个节点, 这就需要上一层 网络层(IP层),
3. 网络层 (IP层)
数据报,Datagram,通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。可以理解为传输数据的分组。
作用: 网络地址翻译成对应物理地址, 通过考虑网络拥塞程度、服务质量、发送优先权、每次路由的耗费来决定节点X到节点Y的最佳路径。
最外层的头是IP头, 拿下来, 包含目标地址和源地址, 拿下来,如果目标IP是自己就上交到传输层,
不然就转发, 把信息送到目标机器为止
操作系统拿到IP后通过掩码发现不是局域网内的,就发给网关,
网关往往是一个路由器,到某个IP 地址应该怎么走,这个叫作路由表。
路由器 会和周围的路由器通过路由协议(常用的有OSPF和BGP)沟通。
4. 传输层
报文段,segment,组成报文的每个分组。我们将运输层分组称为报文段。
TCP/UDP
在 IP 头里面有个 8 位协议,这里会存放,数据里面到底是 TCP 还是 UDP
每次TCP层收到数据,都会原路返回给个回复, 这样如果发丢了可以重发,顺序问题 ,连接维护,拥塞控制
都到达变成一个网络包以后,根据TCP头写的端口,就可以给上层
5. 应用层(OSI中的应用/表示/会话 都在这)
报文,message,一般指完整的信息,传输层实现报文交付。我们将位于应用层的信息分组称为报文。
http ftp SMTP电子邮件
DNS/HTTPDNS: 查网站对应IP的
DHCP:(Dynamic Host Configuration Protocol动态主机设定协定)是一个[局域网]的[网络协议],使用[UDP]协议工作,主要有两个用途:
- 用于内部网路或网络服务供应商自动分配[IP]
- 用于内部网路管理员作为对所有电脑作中央管理的手段
RPC 调用:即远程过程调用 ,RPC 框架有很多种,有基于 HTTP 协议放在 HTTP 的报文里面的,有直接封装在 TCP 报文里面的。
网友评论