一、OSI七层模型
1.Open System Interconnect的缩写,开放式系统互联
2.网络中的数据的传输都会经过这七层,数据包经过后六层的封装,最终通过第一层进行传输
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 |
二、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连接建立-三次握手
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关闭建立-四次挥手
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的滑动窗口协议
解决网络传输中的问题:丢包和重复包,包出错,包传输乱序
实现:维护一个发送方和接收方的缓冲区
正常情况下:
窗口中的数据已发送的在等待回应,一旦有回应窗口就会前进,待发送的会发出去
当4号数据包得到回应后如下图,八九号包被发送了出去,并把十一号包读了进来
丢包(Ack,确认字符)情况下:
窗口中的数据已经全部发送但是没有拿到5号包的回应(Ack)就一直等待,对方如果收到了5号后的包是不会发Ack的,要保证数据包的传输顺序
如果一直没有收到Ack,TCP协议有超时重传机制,会重新从5号包开始发,下图就是重发后对方收到了5号包,并把之前确认过的包的Ack一起发送了过来
五、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