秋招加油
网络模型
功能概述
应用层:进程之间通信 运输层:给进程提供通用的数据传输服务,不针对特定网络,多应用可用 寻址:套接字,socket(IP地址: 端口) 网络层:通过路由器连接各类异构网络 寻址:IP地址 数据链路层:一段一段的链路 寻址:MAC地址 物理层:bit流,电缆的插头及引脚连接方式 物理媒体:光缆、电缆,第0层
数据链路层
封装成帧:SOH、EOT,有帧头和帧尾 透明传输:对SOH、EOT、转义字符前再加转义字符 差错检测:循环冗余校验CRC。 CRC能实现无比特差错检验,但不是可靠传输,不能解决帧丢失、帧重复、帧时序的问题,改错由上层协议完成。 PPP协议: point to point protocol,点对点传输协议,一对一 CSMA/CD: Carrier Sense Multiple Access with Collision Detection. 载波监听多路复用,冲突检测。广播,在总线型网络上,边发送边接听。一个站点不能同时接收和发送。双向交替通信,半双工。
网桥:一次分析转发一个帧。 交换机:多端口的网桥,独占传输媒体,无碰撞传输
网络层
best effort 无连接(不需要预先建立连接)
协议:IP,配套三个协议: ARP(地址解析协议 IP->MAC) ICMP IGMP IP地址:网络号+主机号 A类地址:0xxxx.xxx.xxx.xxx 其中,全0(this)和127(环回测试)被用 范围:1~126 B类地址:10xxx.xxx.xxx.xxx 其中, 128.0不可指派 128.1~191.255 C类地址:110xx.xxx.xxx.xxx 其中,192.0.0不可指派,192.0.1~223.255.255 子网掩码:与&操作获取网络号
RIP(Routing Information Protocol): 基于距离向量的路由选择协议 打表:目的网络 距离(hop) 下一跳路由器 路由器之间会交换信息
虚拟专用网络VPN,拓展IP地址。仅在本机构(局域网)有效的IP地址,本地地址,全球唯一的IP地址:全球地址。 Private address 范围: 10.0.0.0-10.255.255.255 24位块 172.16.0.0-172.31.255.255 20位块 · 192.168.0.0-192.168.255.255 16位块 还有一类VPN,远程接入VPN(remote access VPN),在外地用公司的内网 NAT网络地址转换:用于本地IP与互联网主机通信 方法:NAT路由器至少有一个有效的全球IP地址,然后用它转发。
网络层能完成两台主机之间的逻辑通信,运输层能完成进程之间的逻辑通信。运输层包含差错检测。
运输层
用套接字定位进程
UDP(6点):
- 无连接,不需要预先建立连接
- Best effort,尽最大努力交付
- 面向报文,对应用层给下来来的报文,不合并、不拆分,加个UDP首部
- 没有拥塞控制,不会使源主机发送速率降低 e.g.视频会议
- 一对一、一对多、多对一、多对多
- 首部开销小
TCP(5点):
- 需要预先建立连接
- 一对一
- 可靠交付
- 全双工
- 面向字节流,将应用层数据看成一串字节流,看按照需要合并拆分,加上TCP头部
TCP三次握手创建连接,四次挥手释放连接 握手: 为什么是三次不是两次? 如果是两次,若SYN1堵塞,客户端重发SYN2并成功建立连接。这时SYN1送达,服务器端认为客户端建立了新连接,回复SYN2+ACK2,对于客户端来说,客户端只建立了一个连接,服务器端认为是两个连接,不一致。
TCP在不可靠的信道上保证了可靠的连接。对于丢包、失序,TCP发送时有发送缓冲区,发送segment时会标注序列号、长度,可以对丢失的包重新请求,对失序的包重新排序。 TCP一问一答,一方发送报文,另一方回复确认 ACK=序列号+长度 = 下一包的起始序列
四次挥手 *客户端和服务器端都可以发起释放连接请求
应用层
1. DNS 域名解析服务 IP地址和域名相互映射 域名结构: xxx.edu.cn 三级域名.二级域名.顶级域名 域名查询:递归查询、迭代查询(下一级服务器如果找到目标,则返回目标,若没找到,则给出下一个要查询的域名服务器)
HTTP 无状态,不记忆交互场景 信息码: 1xx 收到/正在处理 2xx 成功/知道 3xx 重定向,需要采取下一步行动 4xx 客户端差错,请求有误 5xx 服务器端差错
常见问题
- 简述一下五层模型
- 简述一下TCP协议
- 简述一下TCP和UDP的区别
- 为什么TCP创建连接要进行三次握手而不是两次?
还有会问http和https的,这一部分后面再补充。
按照自己的理解整理的,若有错误,期待指正。
|