1. OSI和DOD模型
- 说明:RARP就是将ARP反过来
2. 传输层的两个协议
在TCP/IP协议栈,传输层有两个协议TCP和UDP。
2.1 TCP:传输控制协议
在客户端打开一个网页的时候,(1)服务器要将这个网页分成段,封装成多个数据包进行传输。(2)TCP协议要求客户端和服务器之间保持一个会话,用于统计发送了多少个数据包了,还有多少个没发,中途若有丢失的数据包客户端还要要求服务器重新传输,以保证可靠传输。知道数据传输完成,会话才会结束。(3)若服务器给客户端发送的数据过快,客户端来不及处理,客户端会告知服务器暂停一下,等客户端处理完成之后,服务器再继续发。
TCP总结:
- 将传输的文件分段
- 客户端与服务器段建立会话保证可靠传输
- 实现流量控制功能
2.2 UDP:用户数据包协议
(1)上网的时候一般都需要进行域名解析。当在计算机A中输入一个网址的时候,A就要向DNS服务器发一个请求,询问该网址的地址是多少(一个数据包就说明白这件事情),这个时候传输层就用UDP协议;DNS服务器收到数据包后告诉A该域名的ip地址是...,(一个数据包就可以回答A的问题),这也是用UDP协议;之后A通过收到的IP地址访问WEB站点。UDP是不可靠传输,当网络堵塞,数据包发生丢失,即A问了之后,DNS服务器没有回应,那么过1s后,A会再问一遍。A不需要和DNS服务器建立会话
(2)QQ聊天的时候,发送的聊天信息也是一个数据包可以传完,也是不可靠传输,用的是UDP协议。一来一回聊了很多内容,发送了很多数据包,但是这些数据包之间是没有联系的,所以也不需要编号。有时候会出现一个红色!号表示发送失败,这时我们人为地就会再发一遍
(3)两个人传一份500M的电影,这一个数据包是传不完的,这里用的是TCP协议。
(4)发邮件用的是TCP协议(可能邮件很长还有附件)
(5)利用ftp下载文件使用的是TCP协议,ftp上的文件有大有小
(6)有时候使用多个数据包的通信也是UDP通信:eg:广播屏幕也是属于UDP协议。一个机房里的计算机都连着一个交换机,其中有一台老师的计算机上安装了一个广播软件,这个老师的计算机就在这个局域网中发广播,并不和其他的计算机建立会话,也不使用可靠的通信,若有一台学生电脑相应慢没有收到老师当前的屏幕,老师也不会去管,老师的计算机只管当前电脑屏幕是什么样子就在网上播什么。这样数据包广播或者多播的这里通信也用UDP协议。因为不建立会话,也不保证数据传输的可靠性。
- 一个数据包就能完成数据通信,不需要分段
- 客户端和服务器端不需要建立会话(降低了对服务器的性能要求)
- 不需要流量控制(因为就一个数据包)
- 进行不可靠传输(没收到就再传一遍)
- 也会应用于多播和广播
2.3 查看会话
- netstat -n命令用于查看我电脑当前建立的会话,以下都是TCP协议,这里是看不到UDP协议的,因为UDP协议不建立会话
C:\Users\Ruanc>netstat -n
活动连接
协议 本地地址 外部地址 状态
TCP 127.0.0.1:49664 127.0.0.1:59699 ESTABLISHED
TCP 127.0.0.1:54530 127.0.0.1:64231 ESTABLISHED
TCP 127.0.0.1:59699 127.0.0.1:49664 ESTABLISHED
TCP 127.0.0.1:64231 127.0.0.1:54530 ESTABLISHED
TCP 127.0.0.1:64232 127.0.0.1:64233 ESTABLISHED
TCP 127.0.0.1:64233 127.0.0.1:64232 ESTABLISHED
TCP 192.168.43.231:63577 112.34.111.149:80 ESTABLISHED
TCP 192.168.43.231:63593 40.119.211.203:443 ESTABLISHED
TCP 192.168.43.231:63597 183.192.192.163:8080 ESTABLISHED
- netstat -nb用来查看计算机建立会话的进程
当发现可以的会话后,用这个命令可以直接找到建立这些会话的进程,知道这个进程的名称后,我们在自己的电脑上搜索,如果是木马就把它删掉。
3. 传输层协议和应用层协议之间的关系
如下图,黄底的是应用层协议,这里只是列出部分。TCP/UDP+端口:可以表示一个应用层协议,如此说来应用层协议非常多
例如:
- TCP协议+3389端口:代表远程桌面使用的一个协议,叫做RDP协议
常见的传输层协议和应用层协议之间的关系
- http = TCP+80端口
- https = TCP+443端口(访问安全站点的时候用到就是https)
- RDP=TCP+3389端口(使用远程桌面连服务器的时候用到就是远程桌面协议)
- ftp = TCP+21端口
- 访问共享文件夹 = TCP+445端口
- SMTP = TCP+25端口(发邮件用的协议)
- POP3 = TCP+110端口(收邮件)
- telnet = TCP+23端口
- SQL = TCP+1433端口
- DNS = UDP+53端口(应用层的域名解析DNS协议,既可以用TCP的53端口,又可以用UDP的53端口,多数用于UDP的,所以可以认为DNS用的是UDP协议)