文章目录
IP 地址的分类,如何划分的,及会计算各类地址支持的主机数
- A 类地址:首位为 0,1.0.0.1~~126.255.255.254;主机号 24 位
- B 类地址:首位为 10,128.0.0.1~~191.255.255.254;主机号 16 位
- C 类地址:首位为 110,192.0.0.1~~223.255.255.254;主机号 8 位
- D 类地址(多播地址,也叫做组播地址):首位为 1110,224.0.0.1~~239.255.255.254
- E 类地址:此类地址是保留地址,首位为 11110,240.0.0.1~~254.255.255.254
各个层使用的是哪个数据交换设备
- 网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互连设
备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是
互连层。网关既可以用于广域网互连,也可以用于局域网互连) - 路由器:网络层(路由选择、存储转发)
- 交换机:数据链路层、网络层(识别数据包中的 MAC 地址信息,根据 MAC 地址进
行转发,并将这些 MAC 地址与对应的端口记录在自己内部的一个地址表中) - 网桥:数据链路层(将两个 LAN 连起来,根据 MAC 地址来转发帧)
- 集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)
- 中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在
网络上传输更长的距离)
各个层的功能详解
- 应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用
- 表示层(数据):主要解决拥护信息的语法表示问题,如加密解密
- 会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机
制,如服务器验证用户登录便是由会话层完成的 - 传输层(段):实现网络不同主机上用户进程之间的数据通信,可靠
与不可靠的传输,传输层的错误检测,流量控制等 - 网络层(包):提供逻辑地址(IP)、选路,数据从源端到目的端的
传输 - 数据链路层(帧):将上层数据封装成帧,用 MAC 地址访问媒介,错误检测与修正
- 物理层(比特流):设备之间比特流的传输,物理接口,电气特性等
各个层的协议栈
ICMP 报文的分类?
ICMP 分为两类,一类是 ICMP 查询报文,另一类是 ICMP 差错报文。
为什么要 3 次握手,4 次挥手
3 次握手
假设 A 为客户端,B 为服务器端。
-
首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
-
A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。
-
B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。
-
A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
-
B 收到 A 的确认后,连接建立。
3 次握手:第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。
- 客户端发送的连接请求如果在网络中滞留,那么就会隔很长一段时间才能收到服务器端发回的连接确认。客户端等待一个超时重传时间之后,就会重新请求连接。但是这个滞留的连接请求最后还是会到达服务器,如果不进行三次握手,那么服务器就会打开两个连接。如果有第三次握手,客户端会忽略服务器之后发送的对滞留连接请求的连接确认,不进行第三次握手,因此就不会再次打开连接。
4 次挥手
以下描述不讨论序号和确认号,因为序号和确认号的规则比较简单。并且不讨论 ACK,因为 ACK 在连接建立之后都为 1。
-
A 发送连接释放报文,FIN=1。
-
B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。
-
当 B 不再需要连接时,发送连接释放报文,FIN=1。
-
A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。
-
B 收到 A 的确认后释放连接。
4 次挥手:客户端发送了 FIN 连接释放报文之后,服务器收到了这个报文,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会发送 FIN 连接释放报文。
TIME_WAIT
客户端接收到服务器端的 FIN 报文后进入此状态,此时并不是直接进入 CLOSED 状态,还需要等待一个时间计时器设置的时间 2MSL。这么做有两个理由:
-
确保最后一个确认报文能够到达。如果 B 没收到 A 发送来的确认报文,那么就会重新发送连接释放请求报文,A 等待一段时间就是为了处理这种情况的发生。
-
等待一段时间是为了让本连接持续时间内所产生的所有报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。
Cookies 和 Session 的区别
- cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在
某个 WEB 站点会话间持久的保持数据 - session 其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session 其
实是利用 Cookie 进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器
上创建了一个 Cookie,当这个 Session 结束时,其实就是意味着这个 Cookie 就过期 了 - cookie 数据保存在客户端,session 数据保存在服务器端
一次完整的 HTTP 请求所经历的步骤
- 比如:在浏览器中输入 www.baidu.com 后执行的全部过程
TCP 与 UDP 的概念相互的区别及优劣
- TCP 面向连接,UDP 面向无链接
- TCP 面向报文,UDP 面向字节流
- TCP 提供可靠传输服务(数据顺序、正确性),UDP 传输不可靠
- TCP 协议传输速度慢,UDP 协议传输速度快
- TCP 协议对系统资源要求多(头部开销大),UDP 协议要求少
IP 路由选择的特性有什么?
(1) IP 路由选择是逐跳进行的。
IP 并不知道到达任何目的的完整路径,只提供下一跳地址。
(2) 为一个网络指定一个路由器,而不是为每个主机指定一个路由器。
这样可以缩小路由表规模。
TCP 通过哪些方式来保证可靠性?
1) 应用数据被分割成 TCP 认为最适合发送的数据块。
2) 确认机制,发送报文后,等待确认。
3) 重发机制,没有收到确认,将重发数据段。
4) 保持它首部和数据的校验和。确认数据的准确性。
5) 排序,丢弃重复的,流量控制。
TCP、UDP 为什么存在伪包头?
UDP(TCP)检验和:是根据 UDP(TCP)数据报和伪报头计算得到的差错检测值。
伪报头包含源和目的 IP 地址,以及来自 IP 数据报报头的协议值。IP 数据报在网络中传送时
包含 UDP 数据报。
伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误地接收错误
路由的数据报。校验和值的计算方法和 IP 报头检验和的计算方法类似
常用端口
你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步