1.什么是协议?
网络数据传输,都要遵循的约定和规则。最终体现为网络传输数据的格式。
2.网络分层 OSI七层模型
属于网络设计分层。最终没有落地,最终是按照TCP/IP五层或四层模型落地
分层 | 名称 | 软硬件 | 说明 |
7 | 应用层 | 应用程序这一层 | 应用程序要有一个应用层的协议,来传输数据 |
6 | 表示层 | 没落地 | 表示传输数据的类型:文字、图片、视频等 |
5 | 会话层 | 没落地 | 用来标识一次会话(长连接就是建立连接后没有断开都是一个会话、但是短连接就不能用长连接的方式实现) |
4 | 传输层 | 用来保证数据传输的可靠性 双方要知道,是否对方已经收到了我发送的数据 | |
3 | 网络层 | 网络地址管理和路由选择 包括ip地址标识和主机地址 | |
2 | 数据链路层 | 网络设备互相识别数据帧,包含网络地址识别(硬件使用 mac地址) | |
1 | 物理层 | 0/1光电信号 |
3.TCP/IP五层/四层模型
分层 | 名称 | 代表性软/硬件技术 | 代表协议 |
5 | 应用层 | 应用程序(进程) | HTTP、 DNS 、NAT、 NAPT |
4 | 传输层 | 操作系统 | TCP、 UDP |
3 | 网络层 | 路由器、主机操作系统 路由技术 | IP |
2 | 数据链路层 | 交换机 主机操作系统 | ARP |
1 | 网络层 | 集线器 网线 光纤 电磁波 | 0/1这种二进制数据 |
一台主机:
操作系统内核实现从传输层到物理层的内容
路由器:网络层到物理层
交换机:数据链路层到物理层
集线器:仅实现物理层
网络传输流程:广域网数据传输流程
一个数据,从源主机发起,经过的每个设备到达目的主机,涉及的技术、协议浏览器、和web服务器,java程序中的Servlet。
4.TCP
1)设计原则:网络数据传输,在保证安全前提下,尽可能的提高传输效率
安全越高、效率越低
2)三次握手流程:(建立连接)SYN:建立连接、FIN关闭连接、ACK表示响应、PSH表示有数据传输
(1)客户端发送SYN(建立连接的标志位)+SEQ_NO(序号)到服务器
这里的SYN是客户端到服务端的连接,申请建立,要返回ACK之后才真正建立连接
(2)服务端响应SYN(应答步骤1当中的SYN)、ACK、SEQ_NO+1(确认序号)到客户端
这里的SYN是服务端到客户端的连接
客户端 接到响应,建立客户端到服务端的连接(客户端保存这个连接状态)
(3)客户端再响应ACK到服务端 ,服务端接收到以后,建立服务端到客户端的连接(服务端保持这个连接,连接建立是有方向的。)
3)四次挥手流程(关闭连接)
(1)客户端发送FIN到服务器,申请关闭连接服务端状态设置为CLOSE_WAIT
(2)服务端响应ACK
(3)服务端发送FIN到客户端,申请关闭连接,客户端接收到,状态设置为 TIME_WAIT
(4)客户端响应ACK,服务器接收到以后,服务端关闭连接。
4)扩展问题:
Q1:挥手第三步,客户端没有直接设置CLOSE关闭连接?
A:第(4)步的ACK可能丢包,所以要等待一下,客户端要等待一个2MSL的时间,才会进入到CLOSED状态。
Q2:为什么挥手阶段的(2)(3)没有像建立连接时,合并数据包?
A: (2)是系统对TCP协议实现时,接收FIN,自动返回ACK,不再执行程序代码
(3)是程序手动调用执行(服务端关闭连接 前,需要执行 一些前置工作)
5)TCP高效率机制:
①滑动窗口 ②延迟应答③捎带应答
6)TCP的安全机制:
①确认应答 ②超时重发 ③连接管理 ④流量管理 ⑤拥塞控制
5.UDP协议:
数据报协议User Datagram Protocol
UDP是一种面向无连接的传输层通信协议。
6.TCP 和 UDP的区别:
如需满足安全可靠(包括次序),使用TCP;
① 效率看,UDP更优;
② UDP是无连接的、不可靠的。反之TCP有连接,是可靠连接;
③ UDP是面向数据包,只能发送一次和接受一次,TCP是面向字节流的,可以多次发收;
④ UDP具有接收缓冲区,没有发送缓冲区,TCP则都有;
⑤ UDP大小受限制(64k),TCP不受限。
7.IP协议
地址格式:4个部分 以.间隔,每个部分0~255
网络号:保证互相连接的两个网段具有不同的表示(IP地址的前三个部分)
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号(标识同网段,唯一的主机,第四个部分)
Q1:同网段是否允许不同主机相同的主机号? A:可以
Q2:不同网段是否允许不同主机相同的主机号? A:不可以
计算网络号:
ip地址+子网掩码 计算获得(按位与操作)
8.对比IP地址和MAC地址
IP:是给人用的逻辑地址,硬件无法使用。标识网络数据传输的起点和终点。
MAC:是给硬件用的物理地址(网卡出厂时设置的地址,全球唯一)标识网络数据传输时,经过的每一跳的起点和终点。
9.浏览器输入一个URL后发生的事情:
原文详细链接:
https://blog.youkuaiyun.com/curelmn/article/details/119530266?spm=1001.2014.3001.5501