在笔试面试过程中,常常会被问到计网相关的知识,在校的时候只知道它很重要,其实自己完全没啥实操经历,以前太天真了浪费了很多时间和机会,现在慢慢捡起来。
我要好好努力争取变厉害,之前还和朋友说,如果我好好加油,学做个人网站就好了,突然就想做个bx的网站,为爱发电。别的果子们画同人的画同人、翻唱的翻唱、剪视频的剪视频,自己什么也不会,突然有这个想法就更有动力了!等我这段过完之后我一定会开始学的!反正我也不觉得有什么人会看我的博客,我自己倒是会常常翻,所以碎碎念也算是对自己的一种激励吧,加油鸭!
目录
1、网络七层模型/四层模型
经典七层模型(OSI)
- 应用层:是最接近终端用户的层,应用软件直接相互作用,HTTP、SMTP;
- 表示层:这一层的主要功能是定义数据格式及加密,FTP,加密协议;
- 会话层:会话层建立、管理和终止表示层与实体之间的通信会话,RPC、SQL;
- 传输层:向上层提供的端到端的服务,数据报在传输层加远端口号道和目的端口号,TCP、UDP协议;
- 网络层:将上层数据封装成包,提供点到点的服务,定义了能标识所有结点的逻辑地址,数据报在网络层加上原IP和目标IP,IP协议、ARP协议、ICMP协议;
- 数据链路层:将上层数据封装成帧,提供帧校验,进行差错检测,用MAC地址唯一标识设备;
- 物理层:由计算机和网络介质之间的实际界面组成,电气信号、符号、线的状态。
简化理论五层模型
物理层、数据链路层、网络层、传输层、应用层(对应于OSI的会话层、表示层、应用层)
实际应用四层模型(TCP/IP)
2、区别服务和协议:
协议是规则,约定。从层次上来说,协议是通信双知方对等层之间才有的,是水平方向上的关系。
服务是功能,本领。从层次上来说,服务是通信一方自己上下层存在的,下层向上层提供服务,是垂直方向上的关系。
每一层的协议是通过下层对本层提供的服务来支持实现的。
3、网络中相关设备,比如网桥、网关、路由器分别处于哪一层?
- 物理层:中继器,集线器,双绞线 ;
- 网桥,数据链路层,网桥定义转发表写入地址和接口,通过对收到的帧的源地址和目的地址来更新转发表;
- 交换机,数据链路层 ;
- 路由器:网络层, 收集网络拓扑信息并动态形成路由表,决定数据包从源端到目标端经过的路由路径;
- 网关:是在网络层以上实现网络互连。是一个网络连接到另一个网络的“关口”。处在两个不同网络中的主机要实现通信,必须通过网关在网络层以上实现网络互连。
4、TCP的三次握手
- 第一次握手:客户机A主动请求建立连接,发送SYN(seq=x)包到服务器B,进入SYN_SENT状态;
- 第二次握手:服务器B被动打开,确认客户机A的SYN包,向客户机A返回确认帧ack=x+1的同时,自己发送一个SYN(seq=y)包,进入SYN_RECV状态;
- 第三次握手:客户机A收到服务器B的SYN+ack后,向服务器返回确认帧ack=y+1,发送完毕后,客户机A和服务器B进入TCP连接成功状态,完成三次握手。
A发:SYN(seq=x)——>B发:SYN(seq=y), ack=x+1——>A发:ack=y+1
注:在释放连接的过程中,服务器有一个半关闭状态,会先发一次ack,再发一次FIN,所以是四次握手。
5、TCP和UDP的对比
TCP | UDP |
---|---|
面向连接(如打电话要先拨号码建立连接) | 无连接的,及发送数据之前不需要建立连接 |
提供可靠的服务。也就是说,通过TCP连接传送的数据,无差距,不丢失,不重复,且按序到达 | 尽最大努力交付,即不保证可靠交付 |
连接只能是点到点的 | 支持一对一,一对多,多对一和多对多的交互通信 |
对系统资源要求较多 | 对系统资源要求较少 |
通过校验和重传控制,序号标识,滑动窗口,确认应答实现可靠传输,丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。 | 具有较好的实时性,工作效率比TCP高,使用与对高速传输和实时性有较高的通信或广播通信 |