网络基础

 

一、OSI七层模型

1.Open System Interconnect的缩写,开放式系统互联

2.网络中的数据的传输都会经过这七层,数据包经过后六层的封装,最终通过第一层进行传输

img

3.数据链路层:可以在两台计算机之间传输数据包,传完后可以对数据进行简单的校验(如奇偶校验)

4.网络层:添加了路由,解决不是面对面的两台计算机之间数据的传输,数据包会先发给路由器,经过一个或多个路由转发,最后到达目标计算机,同时为了标识网络中的每个路由节点,使用了IP协议,每个路由节点都会有IP地址

5.传输层:虽然可以知道数据的完整性,但传输过程不可靠,可能中途有节点没有收到,添加数据传输的可靠性,如TCP的出错重传机制

6.应用层:数据包是为那个应用服务,如http,ftp,email等

OSI七层 TCP/IP四层 对应网络协议(相对四层来分)
应用层(Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS
表示层(Presentation) ↑ Telnet, Rlogin, SNMP, Gopher
会话层(Session) ↑ SMTP, DNS
传输层(Transport) 传输层 TCP, UDP
网络层(Network) 网络层 IP, ICMP,ARP, RARP, AKP, UUCP, OSPF,BGP,IGMP, RIP
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,CSLIP,MTU
物理层(Physical) ↑ ISO2110, IEEE 802.1A, IEEE 802.2-IEEE 802.11

img

img

img

二、UDP/IP和TCP/IP

1.TCP(Transmission control protocol)传输控制协议,是面向连接安全的,而UDP(User Datagram protocol)是不安全的

2.网络状态相同的条件下UDP传递的速度比TCP快,因为少了一系列的控制机制

三、TCP三次握手与四次挥手

1.常用flag意思

SYN:建立连接

FIN:关闭连接

ACK:响应

PSH:有数据传输

RST:连接重置

2.TCP连接建立-三次握手

img

1.(Client) –> [SYN] –> (Server)

当客户端要和服务端通信时,客户端首先向服务端发一个带SYN (Synchronize) 标记的包,告诉服务端请求建立连接

2.(Server) <– [SYN/ACK] <–(Client)

服务端收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作

3.(Client) –> [ACK] –> (Server)

客户端收到SYN/ACK包后发一个确认包(ACK),通知服务端连接已建立,完成三次握手,一个TCP连接完成

3.TCP关闭建立-四次挥手

img

1.(Client) –> [FIN] –> (Server)

Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态

2.(Server) <– [ACK] <–(Client)

Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态

3.(Server) <– [FIN] <–(Client)

Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态

4.(Client) –> [ACK] –> (Server)

Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,Server进入CLOSED状态,完成四次挥手,一个TCP关闭完成

四、TCP的滑动窗口协议

解决网络传输中的问题:丢包和重复包,包出错,包传输乱序

实现:维护一个发送方和接收方的缓冲区

正常情况下:

窗口中的数据已发送的在等待回应,一旦有回应窗口就会前进,待发送的会发出去

img

当4号数据包得到回应后如下图,八九号包被发送了出去,并把十一号包读了进来

img

丢包(Ack,确认字符)情况下:

窗口中的数据已经全部发送但是没有拿到5号包的回应(Ack)就一直等待,对方如果收到了5号后的包是不会发Ack的,要保证数据包的传输顺序

img

如果一直没有收到Ack,TCP协议有超时重传机制,会重新从5号包开始发,下图就是重发后对方收到了5号包,并把之前确认过的包的Ack一起发送了过来

img

五、windows下的常用网络命令

几种cmd脚本的注释方式

:: 开启热点,需要先打开Wifi
netsh wlan set hostednetwork mode=allow ssid=123 key=12345678
netsh wlan start hostednetwork
netsh wlan stop hostednetwork

rem 重新获取IP地址
ipconfig /release
ipconfig /renew

%刷新DNS缓存%
ipconfig /flushdns

echo 查看路由表 > nul
route print

goto zs
查看下一跳
:zs
tracert www.baidu.com