网络通信(Telematik)-传输层协议(Transportprotokolle)1

一点补充知识

包(Paket)

是网络数据的传输单位,他由目标数据和辅助信息组合而成:

head(Kopf)(Nutzdaten)supplement(Anhand)

第N层的数据单元将被套在第N-1层的数据单元的目标数据中
在信息传输是包与包之间是互不相关的

缓存(Puffer)

Router处理数据包需要时间,因此不能保证每个到达的数据包都会马上被处理,为了存放这些暂时没被处理的数据包,Router里面设计了缓存(Putter)
根据等待队伍的长短,每个包等待的时间都不一样
当缓存区太小,那么多余的到达的数据包将直接被扔掉

TCP

建立TCP连接

tcp建立连接的方法俗称三次握手:
1.Client发出连接请求TConReq(SYN=1,seq=client_isn,…)
//seq:sequenzdummer isn:Initial Sequenznummer
2.Server接收到请求信息之后,向client发出回复信息
TConCof(SYN=1,ACK=1,seq=server_isn,ack=client_isn+1,…)
3.Client回复Server的信息,连接顺利建立
ACK(SYN=0,ACK=1,seq=client_isn+1,ack=server_isn+1,…)

SYN(Synchronize)=1表示请求同步
ACK(Acknowledgment)=1表示确认信息
seq表示发送的包的序列号
ack表示希望获得的下一个包的序列号,当ack=x+1时,表示seq=x的包,我已经收到,所以一次把seq=x+1的包给我吧
那么一个小问题,为什么需要seq呢??
另外建立联系的请求(request),确认(confirm)包中并不包含有Nutzdate
于是另外一个小问题,什么时候 开始允许Client和Server之间传送Nutzdate呢??
另外,如果因为延迟的原因Server同时收到两个相同seq的包,又该如何??
还有,如果Client先后发出两个request,但是最新的request因为延迟拖了一段时间才到达Server,那么会发生什么事呢??
//注ack的含义,以及实际上他是由谁决定的

连接解除

解除连接即可由Client,也可以由Server发起,以Client为例,他要经以下四步:
1.Client发出请求TDisReq(FIN=1,seq=i,ack=j,…)
2.Server回复确认信息TDisCnf(FIN=0,ACK=1,seq=j,ack=i+1,…)
3.Server发出解除请求TDisReq(FIN=1,seq=j,ack=i+1,…)
4.Client回复确认信息TDisCnf(FIN=0,ACK=1,seq=i+1,ack=j+1,…)
5.等待连接解除

TCP连接的标示符(Identifikation einer TCP-Verbindung)

一个TCP连接由以下四个值确定:
1.源IP地址(Quel-IP-Adress)
2.目标IP地址(Ziel-IP-Adresse)
3.源TCP端口(Quell-TCP-Port)
4.目标TCP端口(Ziel-TCP-Port)
那么当一个终端和同一个Server有多个连接时会怎么样呢??

TCP数据包

图片来自百度图片

options

存在意义在于方便功能扩展,在TCP头文件中,每个Option都会被编译成TLV格式(Type-Length-Value),TCP头文件总长最多60B,也就是说Option得数量也是有限制的
option的作用很大,其中一个好玩的就是,他可以用来表示TCP包的情绪,详见RFC 5841

流控制(FlussKontrolle)

目的:防止接收者(Empfaenger)过载
Window:(Empfangsfenster)TCP中得window用来管理缓存空间(Pufferplatz)
window里包括有两个变量:
RevWindow:目前还空闲的缓存空间大小
RevBuffer:用于接收数据的总得缓存空间的大小

Zero Window Probing

问题:零空间问题
A想向B发送信息,但是B回复说我的Puffer满了(RevWindow=0),那么问题来了,B不会主动下A发送信息,而A,由于被告知B的puffer满了,同样也不会向B发送信息。那么当B有空位是A讲如何获得这个信息呢??
要求:就算B满了,A也应该向B发送一个1B的信息。以此来了解B是否有空余空间
Persist-Timer被用于控制Zero Window Probing

扩展问题

1.在一个TCP连接中Window得大小能否改变??
2.当A向B发送信息时,Window的大小由谁决定??
3.序列号seq的大小必须是以一递增的吗??

攻击TCP连接

SYN Flooding

使用伪造的源IP地址发送大量的SYN连接建立请求信息
经典的例子是DoS-Attacke(Denial-of-Service)
**对策:**SYN-Cookies
//具体还没弄明白 待修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值