TCP与UDP(6/30,83min)
TCP(传输控制协议)与UDP(用户数据包协议)
传输层提供端到端的连接;网络层提供点到点的连接
FTP服务、DNS服务等大多应用层服务的客户端都采取TCP/UDP固定端口
端口
端口号范围
0-1023,公认端口(FTP 20/21 Telnet 23)
1024-49151,注册端口(HTTP备用8008 8080)
49152-65535,私有或动态端口
源端口为2个字节(Byte),故一共2的16次方个。
DNS(53)、SNMP(161)既用TCP协议也用UDP协议,后者居多。
————————————————
FTP协议为TCP 20/21,当服务端10.1.1.1开启FTP服务后,我们可以通过ftp://10.1.1.1/进行访问,但如果对方将端口号改为其他时(如2000),我们则需要通过ftp://10.1.1.1:2000/进行访问。
提到端口映射
提到端口扫描工具(10.1.1.1可以ping通,但无法FTP连接,是否是以其他端口替代21端口?)
提到勒索病毒相关端口135、139、445(局域网内)
传输层协议
TCP,可靠的,面向连接的协议,传输效率低,类似打电话
UDP,不可靠的,无连接的服务,传输效率高,类似群聊
————————————————
TCP会话的建立-三次握手(三个包):
①:你好,你是B吗?(序列号Seq为0,标志位为SYN,同步位)
②:
是的,我是B,(确认号Ack=Seq+1=1,标志位为ACK)
你是A吗?(序列号Seq为0,标志位为SYN)
③:是的,我是A。(确认号Ack=Seq+1=1,标志位为ACK)
————————————————
TCP会话的确认:
每说完一句话,总要确认一下(嗯嗯,哦哦,好的) ,所有的数据包都要确认,只有TCP建立连接(握手)第一个包没有Ack包
第二个Ack=第一个Seq+第一个Data=10
注意,这个10是个号码,不是字节大小
表示:我已经收到第一个包了,你可以发送Seq=10的包了
TCP会话的拥塞与流量控制:
注意左下角,窗口大小决定收到Ack之前可以发送的最大字节数。
②:一次发送三个字节(每个包一个字节)
③:缓存占满
④:别一次发那么多消息!一次发一个字节!(Win=1)
————————————————
TCP会话的终止-四次挥手:
①:A:我挂咯?
②:B:好的
③:B:那我也挂咯?
④:A:好的,再见
不带数据的包都被认为只有1个字节,故在握手、挥手过程中,Ack=上一个包的Seq+1
随意抓一个TCP包,如下:
随意抓一个UDP包,如下: