计算机网络 笔记
OSI 七层模型 (五层模型中 应用层对应为 7+6+5)
1. 物理层(Physical Layer):
**、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
2.数据链路层(Data Link Layer):
数据链路层在物理层提供的服务的基础上向网络层提供服务(以太网协议),其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等(为网络层提供可靠的数据传输)。
3.网络层(Network Layer):
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路径选择、路由及逻辑寻址”。
4.传输层(Transport Layer):
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
5.会话层:
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
6.表示层:
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
7.应用层:
为操作系统或网络应用程序提供访问网络服务的接口。
常见网络协议
IP: IP协议(无连接(事先不建立会话)它不会占用两个正在通信的计算机之间的通信线路;不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层TCP协议提供)是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
TCP: 传输控制协议(保证数据通信的完整性和可靠性,防止丢包)
- 三次握手: 建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
1.建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。
2.服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
3.客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
- 四次挥手:终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
1.客户端先发送FIN,进入FIN_WAIT1状态
2.服务端收到FIN,发送ACK,进入CLOSE_WAIT状态,客户端收到这个ACK,进入FIN_WAIT2状态
3.服务端发送FIN,进入LAST_ACK状态
4.客户端收到FIN,发送ACK,进入TIME_WAIT状态,服务端收到ACK,进入CLOSE状态
TIME_WAIT的状态就是主动断开的一方(这里是客户端),发送完最后一次ACK之后进入的状态。并且持续时间还挺长的。客户端TIME_WAIT持续2倍MSL时长,在linux体系中大概是60s,转换成CLOSE状态。
TCP的状态: SYN:建立连接; FIN:关闭连接; ACK:响应; PSH:有Data数据传输; RST:连接重置;
TCP如何保证可靠传输: 1. 三次握手;2. 将数据截断为合理的长度。应用数据被分割成 TCP 认为最适合发送的数据块(按字节编号,合理分片);3. 超时重发。当 TCP 发出一个段后,它启动一个定时器,如果不能及时收到一个确认就重发;4. 对于收到的请求,给出确认响应;5. 校验出包有错,丢弃报文段,不给出响应;6. 对失序数据进行重新排序,然后才交给应用层;7. 能够丢弃重复的数据;8. 流量控制。TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出;9. 拥塞控制。当网络拥塞时,减少数据的发送。
UDP: 用户数据报协议是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象(不对传送数据包进行可靠性保证,适合于一次传输少量数据)。
DNS: 用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。
HTTP: 超文本传输协议(建立在TCP上的无状态连接)
HTTPS: 超文本传输安全协议