图片来自B站“计算机网络微课堂”
1、体系结构
1.应用层
应⽤层(application-layer)的任务是通过应⽤进程间的交互来完成特定⽹络应⽤。**应⽤层协议定 义的是应⽤进程(进程:主机中正在运⾏的程序)间的通信和交互的规则。**对于不同的⽹络应⽤ 需要不同的应⽤层协议。在互联⽹中应⽤层协议很多,如域名系统DNS,⽀持万维⽹应⽤的 HTTP协议,⽀持电⼦邮件的 SMTP协议等等。我们把应⽤层交互的数据单元称为报⽂。
2.运输层
**运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通⽤的数据传输服务。**应⽤进程利⽤该服务传送应⽤层报⽂。“通⽤的”是指并不针对某⼀个特定的⽹络应⽤,⽽是 多种应⽤可以使⽤同⼀个运输层服务。由于⼀台主机可同时运⾏多个线程,因此运输层有复⽤和 分⽤的功能。所谓复⽤就是指多个应⽤层进程可同时使⽤下⾯运输层的服务,分⽤和复⽤相反, 是运输层把收到的信息分别交付上⾯应⽤层中的相应进程。
运输层主要使⽤以下两种协议:
- 传输控制协议 TCP(Transmission Control Protocol)–提供⾯向连接的,可靠的数据传输 服务。
- ⽤户数据协议 UDP(User Datagram Protocol)–提供⽆连接的,尽最⼤努⼒的数据传输服 务(不保证数据传输的可靠性)。
3.网络层
网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输,选择合适的⽹间路由和交换结点,确保数据及时传送。
IP协议提供的是不可靠的、面向无连接的传输
4.数据链路层
负责数据分组在一个网络中的传输,解决三大问题:封装成帧、差错检测、可靠传输
5.物理层
物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异, 使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。
2、三次握手与四次挥手
SYN:(Synchronize Sequence Numbers)同步位,表示进行一个连接请求
ACK:确认位,ACK=1表示确认有效,ACK=0表示确认无效
ack:确认号,对方发生序列+1