计算机网络 5.6-5.8 TCP/UDP

来看看传输层的位置

1054453-20170901170213202-1135006990.png
要点:
1054453-20170901170250155-933964133.png

1054453-20170901170302624-1766220855.png

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

传输层的复用和分用
1054453-20170901170509327-915046135.png
传输层与应用层就是端口 (传输层的应用访问点 TSP)
传输层与网络层之间就是协议字段(网络层的 NTSP)

1054453-20170901171011921-1185413136.png

1054453-20170901171016437-873507215.png

端口(port)

1054453-20170901171251108-1950365256.png
一共可以有 2^16 个

服务器比作房子
而把端口比作通向不同房间的门、

端口扫描可以看好目标主机

1054453-20170901171750093-1032645463.png

套接字

插口 或者 套接口 socket
1054453-20170901171956374-513027199.png

1054453-20170901174929452-1295340240.png

1054453-20170901175113155-102755433.png

1054453-20170901175531202-173248962.png

1054453-20170901175745265-1913472572.png
显得比较冗余了

1054453-20170901180207280-479478218.png

先来看一下UDP协议

用户数据报协议

  • 端口的复用和分用
  • 差错控制技术
    1054453-20170901191255577-435867814.png

若果是UDP进行分片。那么只有第一个会有UDP
1054453-20170901201042843-1759502346.png
UDP的首部(四个字段,每个字段各占两个字节)
1054453-20170901201119124-798048539.png
校验和字段:计算过程下一节介绍
UDP的数据(不讲)

UDP的差错控制方法

有一个首部校验和(只校验首部)
1054453-20170901202646827-785174743.png
节约了时间(尽力而为的思想)给高层留下了数据是否可靠的问题
高层可以自己选择
1054453-20170901202831499-657345764.png
发送时计算一次
接受时再计算一次
包含三个部分
首部,数据,伪首部
1054453-20170901202929093-1785843782.png
增加了伪首部的方法
要对完整点的通信双方的五元组的校验

1054453-20170901203226515-236209021.png

1054453-20170901203322702-1559816586.png

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

1054453-20170901203517905-629202250.png

校验和置零
反码求和再取反
1054453-20170901203638796-2005371791.png
DNS DHCP 都是使用了UDP协议

报文简单,实时应用
1054453-20170901210522093-1022926203.png

TCP协议

双方建立TCP的有限状态机
TCP不提供广播或多播的服务
1054453-20170901213751233-278478312.png
TCP报文段的首部格式
1054453-20170901213942296-33284430.png

1054453-20170901215018421-2127578916.png
前20个字节是固定的

  • 序号
    TCP传送点的报文可以看成连续的字节流
    数据部分的第一个字节的序号

  • 确认号
    期望收到的下一个报文段首部的 序号字段的值

  • 数据偏移(四字节为单位)

+标记位
1054453-20170901220231780-800940224.png
URG: urgent 本报文中包含紧急数据
ACK : 确认号字段有效
PSH : 应尽快将报文给应用程序
RSH : 表明TCP链接出现严重错误,必须重新建立连接
SYN : (需要消耗序号)同步位

FIN :需要释放链接(也消耗序号)

窗口:允许发送方发送的数据量
1054453-20170901220631390-1826980493.png
校验和字段 TCP的 首部 数据 伪首部
TCP伪首部协议字段是6

  • 紧急指针
    在URG置1时有效
    紧急数据的字节数

选项(长度可变,4字节的整数倍,MSS(TCP数据部分的最大长度): TCP报文段长度-TCP首部长度,)

TCP的链接建立过程

SYN
FIN
需要消耗

ACK不消耗

三次握手

1054453-20170901222032952-1615395472.png
通信双方协商报文数据载荷最大长度
MSS值表示后续数据的最大值

1054453-20170901222138046-1835941411.png
避免

分布式的拒绝服务攻击

攻击方式的问题就出在三次握手

1054453-20170901222518983-424120579.png
SYN flood 攻击
TCP是面向链接的传输层协议

TCP链接释放的过程

1054453-20170901222908812-963754375.png
1054453-20170901223816483-1174320145.png

TCP可靠传输

1054453-20170901223920421-238653415.png

序号确认机制

1054453-20170901223948265-927777821.png
1054453-20170901223958468-4191919.png
1054453-20170901224339843-206224753.png
1054453-20170901224443499-46625685.png

若果没有差错,只是没有按序号
(1) 将不按需的报文段丢弃
(2) 先存到缓冲区 以待后用

超时重传机制

在规定的时间内没得到ACK应答,就取出来重新发送
RTO(retransfomationtimeout)
过大或者过小都不好

RTO=RTT+4*RTTD
RTT:端到端的传输时延
RTTD:传输往返时延的偏差值

RTT的更新方法,在传输层是非常困难的事情
TCP采取了一种自适应的算法
发出的时间到受到确认的时间,在加权平均一下

1054453-20170901225536155-1965960351.png
典型取7/8

TCP中的定时器

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

asa

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

1054453-20170901231302858-1509159692.png

1054453-20170901231445640-831032596.png

TCP的拥塞控制机制

1054453-20170901231545858-284221237.png
造成核心的拥塞
1054453-20170901231556437-1034323566.png
传输层的TCP当中实现的

1054453-20170901231613233-209214095.png
衡量网络的拥塞程度
1054453-20170901231637218-93702622.png
假定接受窗口足够大
1054453-20170901231651343-1643315644.png
四种拥赛控制技术
1054453-20170901231902437-1584796893.png

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

1054453-20170901232122530-756860952.png

慢启动在开始的数值比较小
设定一个门限值
1054453-20170901232215468-1064099715.png
1054453-20170901232313312-646795625.png

实例复习

1054453-20170901232343437-1219669557.png
题:

1054453-20170901232455265-844615592.png
解答

1054453-20170901232556077-1469616499.png
(1)
1054453-20170901232645983-253524738.png
(2)
1054453-20170901232711390-46296996.png
(3)
1054453-20170901232730765-784296294.png
第一个SYN
第二个SYN ACK
第三个ACK

1054453-20170901232900874-797341076.png

1054453-20170901232930155-941909768.png

1054453-20170901233049780-1391638234.png

1054453-20170901233131593-965560463.png

1054453-20170901233138718-381346925.png
分析的正确性

小结

转载于:https://www.cnblogs.com/sfzyk/p/7464466.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值