来看看传输层的位置##

要点:


传输层是为两个应用进程提供端到端的通信
传输层的复用和分用

传输层与应用层就是端口 (传输层的应用访问点 TSP)
传输层与网络层之间就是协议字段(网络层的 NTSP)


端口(port)#

一共可以有 2^16 个
服务器比作房子
而把端口比作通向不同房间的门、
端口扫描可以看好目标主机

套接字###
插口 或者 套接口 socket





显得比较冗余了

先来看一下UDP协议###
用户数据报协议
- 端口的复用和分用
- 差错控制技术

若果是UDP进行分片。那么只有第一个会有UDP

UDP的首部(四个字段,每个字段各占两个字节)

校验和字段:计算过程下一节介绍
UDP的数据(不讲)
UDP的差错控制方法###
有一个首部校验和(只校验首部)

节约了时间(尽力而为的思想)给高层留下了数据是否可靠的问题
高层可以自己选择

发送时计算一次
接受时再计算一次
包含三个部分
首部,数据,伪首部

增加了伪首部的方法
要对完整点的通信双方的五元组的校验


计算校验和
数据长度是奇数的话 如果是偶数个就不填充了

校验和置零
反码求和再取反

DNS DHCP 都是使用了UDP协议
报文简单,实时应用

TCP协议#
双方建立TCP的有限状态机
TCP不提供广播或多播的服务

TCP报文段的首部格式


前20个字节是固定的
-
序号
TCP传送点的报文可以看成连续的字节流
数据部分的第一个字节的序号 -
确认号
期望收到的下一个报文段首部的 序号字段的值 -
数据偏移(四字节为单位)
+标记位

URG: urgent 本报文中包含紧急数据
ACK : 确认号字段有效
PSH : 应尽快将报文给应用程序
RSH : 表明TCP链接出现严重错误,必须重新建立连接
SYN : (需要消耗序号)同步位
FIN :需要释放链接(也消耗序号)
窗口:允许发送方发送的数据量

校验和字段 TCP的 首部 数据 伪首部
TCP伪首部协议字段是6
- 紧急指针
在URG置1时有效
紧急数据的字节数
选项(长度可变,4字节的整数倍,MSS(TCP数据部分的最大长度): TCP报文段长度-TCP首部长度,)
TCP的链接建立过程##
SYN
FIN
需要消耗
ACK不消耗
三次握手###

通信双方协商报文数据载荷最大长度
MSS值表示后续数据的最大值

避免
分布式的拒绝服务攻击
攻击方式的问题就出在三次握手

SYN flood 攻击
TCP是面向链接的传输层协议
TCP链接释放的过程##


TCP可靠传输###

序号确认机制###




若果没有差错,只是没有按序号
(1) 将不按需的报文段丢弃
(2) 先存到缓冲区 以待后用
超时重传机制###
在规定的时间内没得到ACK应答,就取出来重新发送
RTO(retransfomationtimeout)
过大或者过小都不好
RTO=RTT+4*RTTD
RTT:端到端的传输时延
RTTD:传输往返时延的偏差值
RTT的更新方法,在传输层是非常困难的事情
TCP采取了一种自适应的算法
发出的时间到受到确认的时间,在加权平均一下

典型取7/8
TCP中的定时器###
(1)重传定时器
在规定时间内没有受到应答就重发
(2)持续定时器
缓冲满了发一个窗口值是0的,
有了缓冲,就发窗口更新报文(然而丢了)
这下晚秋了
超时了,就发一个探寻的消息
(3)保活定时器
查看通信的另一方是否在线,一般设置2个小时
发出10个都没有应答就终止
(4)时间等待定时器
关闭后,一般设置为某一报文寿望寿命的2倍

asa##

端到端的流量控制
通过选项通知对方
可以随时动态的调整窗口
由接受端控制发送端


TCP的拥塞控制机制###

造成核心的拥塞

传输层的TCP当中实现的

衡量网络的拥塞程度

假定接受窗口足够大

四种拥赛控制技术

ssthresh
是为了防止因为数据过大出现拥塞

慢启动在开始的数值比较小
设定一个门限值


实例复习#

题:

解答

(1)

(2)

(3)

第一个SYN
第二个SYN ACK
第三个ACK





分析的正确性