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:UsersRuanc>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协议)
4. 服务和应用层协议之间的关系
服务:计算机安装服务之后,利用TCP/UDP的端口侦听客户端的请求。
我们可以在计算机中安装很多服务。比如:
-
安装web服务,那么计算机就是一个web站点了。
-
安装邮件服务,那么就可以让客户端收发邮件了
-
当计算机1安装了web服务,只有这个服务一启动,他就使用TCP协议的80端口来侦听客户端的请求。若安装FTP服务,那么该服务一启动,那就用TCP协议的21端口来侦听客户端的请求。安装SMTP发邮件服务,就使用TCP的25端口来侦听客户端的请求。
-
举例:
当计算机2要访问WEB站点,就要在网上发一个数据包,数据包在传输层包含信息:目标端口80(明确),源端口1234(随便);到网络层之后加上ip地址:目标ip101,源ip102。到达路由器后,路由器根据ip地址将数据包转发到计算机1的网卡,网卡发现数据包里用的是TCP协议且端口号是80,此时web站点已经启动,且80端口在侦听,那么就用web服务器负责接待,知道对方是来访问网页的,那么就将网页传回去。
-
数据到达计算机1后,访问计算机1的哪个服务,是由目标端口决定的。若计算机上只是安装了web服务,但是没有启动,那么这个80端口是不侦听的,也不会搭理客户端的请求
-
web安装后必须是启动状态,才会侦听客户端的请求
-
为了安全起见,还可以在计算机1的网卡上设置,什么样的数据包可以进来。若这个网卡只允许目标端口是80的数据可以进来,这样只允许访问网站的数据包可以进来,访问FTP的,SMTP等都进不来,就算在侦听也没有用。网络安全由此产生。
计算机如何实现安全
计算机上如果安装的服务比较多,若服务1有漏洞,通过服务1的漏洞可能会入侵操作系统,之后将其他服务损坏。如何让自己的服务器更安全呢?
- 将没有用的服务停掉
- 若害怕停下某个服务导致系统崩溃,那么可以在计算机的网卡上设置安全
- 网络安全:计算机的网卡上只开发必要的端口
总结服务和应用层协议之间的关系
- 服务使用TCPUDP的端口侦听客户端请求
- 客户端使用IP地址定位服务器
- 客户端使用目标端口定位服务器中的某个服务
- 可以在服务器网卡上设置必要的端口,实现服务器网络安全
5. 网络安全(补充内容,不属于计算机网络的内容)
5.1 如何在window上安装服务
安装服务之后,启动,计算机就开始侦听对应的端口
5.2 如何查看服务侦听的端口
- 命令netstat -a或者netstat -an都可以查看服务侦听的端口
C:UsersRuanc>netstat -an
活动连接
协议 本地地址 外部地址 状态
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING
TCP 0.0.0.0:6646 0.0.0.0:0 LISTENING
TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49669 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49671 0.0.0.0:0 LISTENING
TCP 127.0.0.1:7475 0.0.0.0:0 LISTENING
TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING
TCP 127.0.0.1:49184 127.0.0.1:49664 ESTABLISHED
TCP 127.0.0.1:49664 127.0.0.1:49184 ESTABLISHED
TCP 127.0.0.1:51308 127.0.0.1:54530 ESTABLISHED
TCP 127.0.0.1:51309 127.0.0.1:51310 ESTABLISHED
- 本地地址那一列的冒号就表示本台计算机正在侦听的端口号,我的计算机侦听了445端口,445端口是访问共享资源用到的端口
- ESTABLISHED表示已经建立会话
- 说明
TCP 192.168.43.231:51500 204.79.197.222:443 ESTABLISHED
表面一个ip地址为204.79.197.222的计算机访问我的51500端口,数据包的源端口是443
-
电信的DNS服务器222.222.222.222;谷歌公司的DNS服务器8.8.8.8
-
查看建立的会话netstat -n
C:UsersRuanc>netstat -n
活动连接
协议 本地地址 外部地址 状态
TCP 127.0.0.1:49184 127.0.0.1:49664 ESTABLISHED
TCP 127.0.0.1:49664 127.0.0.1:49184 ESTABLISHED
TCP 127.0.0.1:51308 127.0.0.1:54530 ESTABLISHED
TCP 127.0.0.1:51309 127.0.0.1:51310 ESTABLISHED
TCP 127.0.0.1:51310 127.0.0.1:51309 ESTABLISHED
TCP 127.0.0.1:54530 127.0.0.1:51308 ESTABLISHED
TCP 192.168.43.231:49201 112.34.111.149:80 ESTABLISHED
TCP 192.168.43.231:50682 40.119.211.203:443 ESTABLISHED
TCP 192.168.43.231:50701 183.192.192.163:8080 ESTABLISHED
TCP 192.168.43.231:50719 221.228.75.64:9203 ESTABLISHED
TCP 192.168.43.231:50900 13.224.161.13:443 ESTABLISHED
TCP 192.168.43.231:50944 112.34.111.108:443 CLOSE_WAIT
TCP 192.168.43.231:51373 116.62.230.66:443 ESTABLISHED
TCP 192.168.43.231:51385 112.34.111.108:443 CLOSE_WAIT
TCP 192.168.43.231:51457 120.92.219.40:7823 ESTABLISHED
- netstat -nb:查看建立会话的进程
- telnet ip port : 查看某一个机器上的某一个端口是否可以访问,如:telnet 114.80.67.193 8080。黑客在允许服务器的时候先进行端口扫描,目的就是看对方的服务器上允许着什么服务,若一扫描看到80端口,就知道对方是一个web服务;看到3389端口,就知道对方是远程桌面服务。再看对方的这个服务是不是有什么漏洞再想办法入侵。
5.3 如何更改服务使用默认端口
可以迷惑黑客,若本台计算机上运行远程桌面服务,那么黑客扫描到我在侦听3389端口,就知道我是远程桌面服务;若将端口改成4000,黑客就不知道这是什么服务。更改端口可以让我们的服务器更安全。
5.4 如何甚至window网络安全
在网卡上只开发必要的端口
6. 传输层(计算机网络)
6.1 传输层的功能
-
功能:为相互通信的应用进程提供了逻辑通信
-
与网络层的区别:网络层是将数据包从地址2转到地址1;让一台计算机上的应用程序找到另一台计算机的应用程序,实现方法就是TCP+端口
-
传输层协议和网络层协议的区别
传输层协议:提供应用进程之间的通信
网络层协议:提供主机之间的通信
- 传输层对收到的报文进行差错检测
- 传输层提供面向连接和面向无连接的服务,TCP协议面向连接,UDP协议面向无连接
6.2 传输层的端口
- 网络层数据包的首部中一个字节的“协议”字段:用协议号来区分数据包里的数据是TCP还是UDP(TCP的协议号是6;UDP的协议号是17;ICMP的协议号是1;IGMP的协议号是2;)
- 传输层用端口号来区分上一层是什么服务
- 每一层都要有一个方法来区分上一层
TCP端口
- 用16位二进制进行标识
- 端口号只具有本地意义,本地唯一,比如一个计算机上运行WEB服务、FTP服务、SMTP服务,那么这三种服务的端口号不能重复
- 对于客户端,打开IE浏览器,输入一个网址,这个窗口就会和服务器通信,就会产生一个源端口1455。若又打开一个IE浏览器,又访问一个网址,该IE窗口会产生另外一个端口号1456,这些源端口也不可以重复,否则从服务器回来的数据包就不知道该给哪个窗口。访问web站点的时候,在通信接收前,源端口号是不变的。
- 端口取值范围0~65535,分以下3钟
(1)熟知的端口:0~1023:FTP是21;TELNET是23;SMTP是25;DNS是53;HTTP是80;https是443;
(2)登记端口号:1024~49151:RDP是3389.(后面开发出新的程序的人,所占用的端口)
(3)客户端口号:4915265535:我们访问一个web站点,我们产生的源端口是从4915265535这里产生一个随机数 - 小技巧
C:UsersRuanc>netstat -n : find "ESTABLISHED"
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行程序。在某些情况下,已知可执行程序承载
多个独立的组件,这些情况下,
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行程序的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且在你没有足够
权限时可能失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。