网络基础

 

一、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