1、网络:是由网络连接设备(路由器、交换机等)通过传输介质(网线、光纤等)将网络终端设备(计算机、服务器等)连接起来进行数据交换、资源共享的平台
注释:服务器:指一台安装了服务操作系统的电脑
2、OSI七层参考模型(开放式系统互联模型)
OSI被分为七层:
1、应用层:通过人机交互来实现各种各样的服务
2、表示层 :编码 解码 加密 解密
3、会话层:发现 建立 维持 终止会话进程
4、传输层:通过端口号来区分不同的服务
端口号(0-65535)又分为:1、静态端口号 2、动态端口号
1、静态端口号(1-1023):
一个端口号代表一个服务,且成永久绑定关系
2、动态端口号(1024-65535):
一个端口号代表一个服务,且呈暂时性绑定关系
0-—特殊端口号—保留端口号(在网络编程中使用代表所有端口号)
提供可靠的传输
可靠机制:确认 重传 排序 流控
TCP--传输控制协议
面向连接的可靠传输协议
UDP--用户数据报文协议
非面向连接的不可靠传输协议
面向连接---三次握手 四次挥手
三次握手:
四次挥手:
FIN--请求断开连接
ACK--确认
1、为什么要进行三次握手,握手为什么需要三次?
答:为了防止无效的连接请求报文到达服务器而引起错误
详细解释:
假设A给服务器发送了一个请求,但是由于网络原因迟迟没有到达B服务器。由于一直没收到服务器端的回复确认,所以就进行超时重传,上个就舍弃了,
然后新的请求很快的到达了B服务器,然后B服务器也很快的进行了响应,如果是两次握手的话,这样就建立了连接,但是上次因网络问题迟迟未到的第一个请求这时到达了B服务器,服务器依然会当成新的连接请求进行响应,(服务器只要响应,第二次握手就完成了)这时又会建立连接,这就会出现建立了两个连接的局面,然后这就会出现很多问题,例如服务器端认为完成了握手,可以发送数据了,于是一直处于等待数据状态,而发送端不理睬服务器端发来的请求(因为发送端的那个请求早就被清除了),不去发送数据,后果就是服务器一直等,这样就会浪费很多服务器资源
如果是三次握手的话,就会避免这个问题,因为比如第二次的新请求
2、挥手为什么需要四次?三次不可以吗?
答:确保数据能够完整传输。
当被动方收到主动方的FIN报文通知时,它仅仅表示主动方没有数据再发送给被动方了。
但未必被动方所有的数据都完整的发送给了主动方,所以被动方不会马上关闭SOCKET,它可能还需要发送一些数据给主动方后,(按照常理的话,第二次和第三次挥手应该一起回复FIN=1和ACK=1的,但是因为服务器端可能有数据没发完,所以不能也立刻去主动申请关闭,所以要把ACK和FIN分开)
再发送FIN报文给主动方,告诉主动方同意关闭连接,所以这里的ACK报文和FIN报文多数情况下都是分开发送的。
5、网络层:
根据IP地址来进行逻辑寻址
IPv4地址---有限的--用完了
IPv6地址---
IP协议--网际网络协议
6、数据链路层:
---交换机
LLC 逻辑链路控制子层
为上层服务提供FCS校验 --封装和解封装
MAC 媒介访问控制子层
根据MAC地址来进行物理寻址
MAC地址--物理地址---设备在出场之后烧录在网卡上的
7、物理层:
定义:电气电压 光学特性 接口规范
tcp报头:
Resv---预留位--保留出来的----服务质量---
Rst--重置位
Urg--紧急指针--urgent pointer
Ctl ---控制位--只有0和1 为0 不生效 为1 生效
Window size --窗口大小 ---滑动窗口
Checksum ---校验和
Options---选项---有就有 没有就没有
UDP报头:
IP报头:
Version 版本 IPv4
IHL IP header length
Service type ---服务类型
Packet length --数据包的长度
标识 标志 片偏移 ----支撑跨层封装
Time to live ---生存时间 主要作用--防止环路
取值范围 0-255
TCP/IP协议栈---以太网 (ethernet):
相同点: 二者都是模型化层次化
下层对上层提供服务支持
每层协议彼此相互独立
不同点:OSI先有模型才有协议
TCP/IP先有协议才有模型
TCP/IP协议栈只适用于TCP/IP网络层量不同
信号衰减-->物理加压--->中继器---信号失真--->交换机---->广播风暴-->路由器中继器---产生冲突路由器的作用:隔离广播域/划分广播域连接不同的网络
交换机的作用:无限延长传输距离 实现单播 解决冲突域
冲突域---可能产生冲突的地方
广播域--广播的范围
数据从设备的一个接口进入,从其他接口转发出去
默认情况下,一个交换机属于一个广播域
解决冲突:
FIFO --先入先出 First in first out