1.网络:是由网络连接设备通过传输介质将网络终端设备连起来进行数据交换资源共享的平台。
2.网络连接设备:路由器 交换机
传输介质:网线 光纤 电话线
网络终端设备:计算机服务器 ,手机.,智能电视.,摄像头(视频安防),哑终端(不能人机交互)
服务器:一台安装了服务器操作系统的电脑(PC)
二,OSI--七层参考模型
1.OSI——开放式系统互联模型
ISO——国际标准化组织
ISO——苹果操作系统\cisco思科设备的操作系统
{物理层-数据链路层-网络层-传输层-会话层-表示层-应用层}
物 数 网 传 会 表 应
<1>应用层——app应用缓存--通过人机交互来实现各种各样的服务
<2>表示层——编码,解码,加密,解密
<3>会话层——发现,建立,维持,终止会话ji
<4>传输层——通过端口号来区分不同的服务
提供可靠的传输
* 端口号:0-65535
静态端口号 | 1-1023 | 一个端口号代表一个服务,且呈永久绑定关系 |
动态端口号 | 1024-65535 | 一个端口号代表一个服务,且呈暂时性绑定关系 |
0
- 特殊端口号
- 保留端口号
- 在网络编程中使用
- 代表所有端口号
*http——超文本传输协议 80/8080
https——安全的超文本传输协议 443
- 协议(语言)——>对等,交互,沟通
可靠机制:确认 重传 排序 流控(流量控制)
TCP---传输控制协议(面向连接的可靠传输协议) “慢”
举例:上网 。有三次握手 四次挥手
UDP---用户数据报文协议(非面向连接的不可靠传输协议)“快”
举例:视频,网页,直播。无三次握手 四次挥手
三次握手 四次挥手
1.
三次握手
- SYN——同步序列号请求 ——请求连接的一种方式
- Seq——序列号——记录发送的次数 ——随机生成——不同厂商设定的
- Ctl——控制位
- Ack——确认
- Ack=seq+1
- Sequence number ——序列号
三次握手
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。
进行三次握手:
第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
在socket编程中,客户端执行connect()时,将触发三次握手
2.
四次挥手
- FIN--请求断开连接
- ACK--确认
- seq相同---同时发送----时间间隔
建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。
TCP 连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务端均可主动发起挥手动作。
刚开始双方都处于ESTABLISHED 状态,假如是客户端先发起关闭请求。四次挥手的过程如下:
第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。
第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
收到一个FIN只意味着在这一方向上没有数据流动。客户端执行主动关闭并进入TIME_WAIT是正常的,服务端通常执行被动关闭,不会进入TIME_WAIT状态。
在socket编程中,任何一方执行close()操作即可产生挥手操作
3.数据分段
最大段长度: 1480B
最大传输单元: 1500B 1字节=8位
4.封装与解封装——234层
source port 源端口
destination 目标端口
FCS (暗号)
date 基础数据
port number(端口号) TCP/UDP
IP地址/ source IP/ destination IP
MAC source port destination
上三层——数据报文
四层封装——数据段
三层封装——数据包
二层封装——数据帧
一层封装——比特流(电信号)
<5> 网络层:根据IP地址来进行逻辑寻址
IP协议---网际网络协议
IPv4--有限的---用完了IPv6 (最先铺设教育专线)
<6>数据链路层——交换机
- LLC ——逻辑链路控制子层——为上层服务提供FCS校验(对暗号)
- MAC —— 媒介访问控制子层——根据MAC地址来进行物理寻址
MAC地址--物理寻址--设备在出厂之后烧录在网卡上的编号(一般不可以进行更改)
<7>物理层——定义电气电压,光学特性,接口规范
TCP/IP模型 以太网
三.数据的发送--报文封装
1.TCP报文头部
- Resv---预留位--保留出来的----服务质量---
- Rst--重置位
- Urg--紧急指针--urgent pointer
- Ctl ---控制位--只有0和1 为0 不生效 为1 生效
- Window size --窗口大小 ---滑动窗口
- Checksum ---校验和
- Options---选项---有就有,没有就没有
特殊端口
FTP:文件传输协议
数据端口(数据传送端口) TCP 20
控制端口(传送控制信号) 一般为TCP 21
telnet TCP 23 明文
SSH(安全外壳) TCP 22 密文
http TCP 80/8080
https TCP 443
SMTP(发邮件) TCP 25
POP3(收邮件) TCP 110
tftp UDP 69
DNS TCP/UDP 53
VNC TCP 5900
2.UDP报文头部
3.IP报头
- Version——版本 IPv4
- IHL——IP header length
- Service type --服务类型
- Packet length --数据包的长度
- 标识 标志 片偏移 --支撑跨层封装
- Time to live --生存时间 主要作用--防止环路
- 取值范围 0-255 64 128 192
- 默认情况下每经过一台路由器减1,为0不传递
- Protocol 协议号 --标识上层协议
四.TCP/IP协议——以太网(五层模型/四层模型)
TCP/IP协议只支持TCP/IP网路---IP网络
Network——包含的网络层协议---IPX
OSI与TCP/IP协议栈的区别
相同点:
- 2者都是模型化层次化
- 下层对上层提供服务支持
- 每层协议彼此相互独立
不同点:
1.OSI先有模型才有协议
2.TCP/IP先有协议才有模型
3. TCP/IP协议栈只适用于TCP/IP网络
4. 层量不同
- Application --应用层
- Presentation-表示层
- Session--会话层
- Trassport--传输层
- Network--网络层
- Data link--数据链路层
- Physical--物理层
- Network access ---网络接入层
- Internet--因特网
五.中继器/交换机/路由器
1.信号衰减——>物理加压——>中继器——>信号失真——>交换机——>广播风暴——>路由器
中继器---产生冲突
2.路由器的作用
- 隔离广播域/划分广播域
- 连接不同的网络
- 路由
3.交换机的作用
- 无线延长传输距离
- 实现单播
- 解决冲突域
-
冲突域---可能产生冲突的地方
广播域——广播的范围
----数据从设备的一个接口进入,从其他接口转发出去
-----默认情况下,一个交换机属于一个广播域
解决冲突:
- FIFO --先入先出
-
First in first out
- CSMA/CD --带冲突检测的载波多路访问技术
六.二进制——十进制转换
点分十进制
00000000.00000000.00000000.00000000
128 64 32 16 8 4 2 1