什么是网络?
网络是由网络连接设备通过传输介质将网络终端设备连接起来,进行信息传递、资源共享的平台。
网络连接设备:路由器、交换机、猫
传输介质:网线、光纤、同轴电缆
网络终端设备:pc、手机、电视、智慧家居
(对等通信 扩大网络的方法:1、延长传输距离2、增加接入的数量)
- 延长传输距离:抗干扰、中继
什么是路由器?
路由器是连接互联网内局域网和广域网的设备
OSI七层参考模型
OSI开放式系统互联模型
例:USB type-c 网线 光纤 硬盘 内存
ISO 国际标准化组织 GB1207
应用层:通过人机交互实现各种各样的服务
表示层:编码 解码 加密 解密
会话层:发现 建立 维持 终止会话进程
(上三层产生数据)
(下四层传递数据)
传输层:
1、通过端口号区分不同的服务
端口号范围:0-65535
端口号分类:
静态端口号:1-1023 一个端口号对应一个服务,呈永久绑定关系
http--超文本传输协议(端口号:80/8080)
https--安全通信的传输协议(端口号:443)
例:https://www.baidu.com:443(静态端口号被省略) --URL
URL:统一资源定位符
动态端口号:1024-65535 一个端口号对应一个服务,呈暂时性绑定关系
0为保留端口号、在网络编程中使用,用于代表所有端口号
2、提供可靠的传输 (协议--标准,可以对话的标准)
传输层常用的两个协议:TCP和 UDP
TCP:传输控制协议 面向连接的可靠传
面向连接--三次握手、四次挥手机制
可靠(因为存在特定的机制)--确认 重传(主要作用) 排序 流控(辅助作用)
TCP的工作模式:全双工
常见的工作模式:全双工、半双工、单工
全双工:客户端在给服务端发送信息的同时,服务端也可以给客户端发送信息(数据的发送和接收用两根不同的数据线,通信双方在同一时刻都能进行发送和接收,这一工作方式称为全双工通信。在这种方式下,通信双方都有发送器和接收器,发送和接收可同时进行,没有时间延迟。
半双工:客户端在给服务端发送信息的同时,服务端不可以给客户端发送信息;但是双方都可以互相发送信息
单工:客户端只能给服务端发,或服务端只能给客户端发)
UDP:用户数据报文协议 非面向连接的不可靠传输协议
(TCP--传输速度慢 UDP--传输速度快)
端口号与协议:
- 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。
- 此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。
3、数据分段
MSS 最大段长度 1480B
MTU 最大传输单元 1500B
单位的换算关系(字节和位):1字节=8位
数据的封装与解封装
网络层:根据IP地址来进行逻辑寻址,实现点到点的通信
编址、寻址--IP协议--网际网络协议
互联网的每一个节点必然会存在一个IP地址
数据链路层:LLC:逻辑链路控制子层 为上层服务提供FCS校验--封装与解封装
MAC:媒介访问控制子层--根据MAC地址来进行物理寻址
物理层:定义电气电压 光学特性 接口规范
如何定义N层设备?什么是七层设备?什么是三层设备?
此设备可以解封装到第N层,就称之为N层设备
确保TCP面向连接的方式:三次握手 四次挥手
SYN:同步序列号请求 ACK:确认 Seq+1 = ack
图示为三次握手
第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
第二次握手:这次握手实际上是分为2个步骤完成的。
首先,PC2收到PC1请求,向PC1回复确认信息。
并且,PC2也向PC1发送建立连接请求。
第三次握手:PC1收到PC2回复,也要向PC1回复一个确认信息。
为什么TCP连接的时候是3次?2次不可以吗?
①如果握手两次,客户端发送第一个请求连接没有丢失,但因为网络节点中滞留时间太长导致TCP的客户端没有收到确认报文,客户端以为服务器没有接收到请求而重新向服务端再次发送这条报文,此后客户端与服务器通过两次握手完成连接,传输数据然后关闭连接。而此时那条滞留的请求连接因网络通畅到达服务器,这个报文本该是失效的但是两次握手的机制让客户端与服务器再次连接,从而产生错误和资源浪费。
②还要考虑到丢包的问题,如果握手两次,第二次握手服务端向客户端的确认报文丢失,此时服务端已经准备好收发数据而客户端没有收到就不确定服务端是否准备好就不会向服务端发数据
FIN-请求断开连接
上图示为四次挥手
第一次挥手:
首先客户端想要断开连接,向服务器端发送一段TCP报文
第二次挥手:
服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要断开连接,随后服务器端结束ESTABLISHED阶段,进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文
第三次挥手:
服务器端自从发出ACK确认报文之后,经过CLOSED-WAIT阶段,做好了断开服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文
第四次挥手:
客户端收到从服务器端发出的TCP报文,确认了服务器端已做好断开连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文