为应用进程提供逻辑服务,需要添加端口,从进程到进程。
TCP(Transmission Control Protocol)
传输控制协议
一对一通信,需要将传输的文件分段 传输,建立会话保持数据完整,可靠传输,流量控制功能(发送过快接收处理不过来,减缓速度)、避免网络拥堵(网络本来拥堵导致丢包严重)。如邮件传输。
套接字就是IP地址加端口
TCP报文段也分为TCP首部和TCP数据部分
首部分为 20固定字节和长度可变字节(选项加填充)
- 目标端口源端口:32 bit 4个字节
- 序号:32 bit 整个文件的第n个字节
- 确认号:32 bit 告诉下一个字节号
- 数据偏移:4 bit 首部最多15 x 4 = 60字节,所以选项长度最多40字节
- 保留:
- URG:一个标记,任何时候优先传输,必须要求中断连接不可能等到缓冲区处理完才处理中断连接请求
- ACK:为1确认号有效,为0确认号无效
- SYN:发起会话的数据包,可以利用TCP的建立会话发起攻击(SYN攻击,目标地址不可达,源地址乱造),land攻击(目标地址和源地址都是自己)
- PUSH:为1时放到数据最前面直接给计算机
- RST:为1表示TCP出现严重错误,必须释放连接,异常中断
- FIN:通信完毕,释放连接为1
- 窗口:统一接收和发送的缓存字节大小
- 校验和:2字节,首部和数据两部分校验
- 紧急指针:在URG为1时,指明紧急数据在数据的哪个位置
- 选项:最大数据段尺寸、SACK选择性确认(接收数据不一定完全连续,可能丢包,需要选择性确认通知发送端缺的部分),时间戳等
TCP如何实现可靠传输
停止等待协议。自动重传请求ARQ,信道利用率太低,发送时间短,大部分时间都在等待。连续ARQ协议。
- 以字节为单位的滑动窗口技术
TCP如何实现流量控制
根据发送端缓存状况动态调整窗口大小实现流量控制
TCP如何避免网络拥堵
UDP(User Datagram Protocol)
用户数据报协议
一个数据包就能完成数据通信,数据很小不需要分段,不需要建立会话,不需要流量控制,不可靠传输。如DNS、QQ消息(QQ传文件是TCP)、多播或广播。
UDP首部开销只有8字节,但是为了计算检验和还需要加上伪首部12个字节(会用到网络层的部分首部内容)
查看会话
查看所有会话:netstat -n
查看建立会话的进程:netstat -nb
常见应用层协议使用的端口
端口号有16位2进制表示,0~65535
熟知端口:0~1023
登记端口:1024~49151
客户端口:49152~65535
- http = TCP + 80 web服务
- https = TCP + 443
- RDP = TCP + 3389 远程桌面协议
- FTP = TCP + 21
- 共享文件夹 = TCP + 445
- SMTP = TCP + 25 发邮件
- POP3 = TCP + 110 收邮件
- telnet = TCP + 23
- SQL = TCP + 1433
- DNS = TCP + 53
服务和应用层之间的协议
网卡可以设置哪些端口的数据能进来
服务可以使用TCP或UDP的端口侦听 客户端的请求
客户端使用IP地址定位服务器,使用目标端口定位服务
可以在服务器网卡上设置必要的端口 来保证服务器网络安全
https://www.bilibili.com/video/av9876107/?p=58一顿操作,将电脑设成服务器,远程访问桌面、修改端口等等
如何在 windows上安装服务
web服务
SMTP服务
POP3服务
如何查看服务侦听的端口
netstat -an
netsat -n 查看建立的会话
netstat -nb 查看建立会话的进程
telnet xxx.xxx.xxx.xxx 3389测试某个远程计算机某个端口是否打开
如何更改服务使用默认端口
迷惑入侵者,是系统更加安全
如何设置 Windows网络安全
设置本地连接 TCP/IP筛选 只开必要的端口