来看看传输层的位置


要点:

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

传输层的复用和分用

传输层与应用层就是端口 (传输层的应用访问点 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


分析的正确性

小结

计算机网络 5.6-5.8 TCP/UDP的更多相关文章

  1. TCP/UDP详解

    转载:http://www.cnblogs.com/visily/archive/2013/03/15/2961190.html, 作者:望梅止渴 相关: HTTP协议详解  深入理解HTTP协议 T ...

  2. High Performance Browser Networking - TCP UDP TLS

    延迟 定义和标准延迟 延迟简单地说,它是一种转移或信息包从起点到终点,所花费的时间. 延迟=发送延迟+传播延迟+处理延迟+排队延迟: Propagation delay 传播时延 传播时延这个概念.是 ...

  3. 三十天学不会TCP,UDP/IP网络编程-IP头格式祥述

    我又来了,这篇文章还是来做(da)推(guang)介(gao)我自己的!俗话说事不过三,我觉得我下次得换个说法了,不然估计要被厌恶了,但是我是好心呐,一定要相信我纯洁的眼神.由于这两年接触到了比较多的 ...

  4. TCP&UDP&Socket讲解(上)

    这两天我将整理TCP&UDP&Socket,大约花大家10-15分钟之间,希望本篇文章让大家对TCP使用的理解提高一个层次. 建议大家拿出纸和笔,画一下!!! 一.TCP 1. TCP ...

  5. 计算机网络、OSI模型、TCP/IP族

    一.计算机网络分类 1.按通信距离分类: 局域网:LAN,10m-1000m,房间.校园: 城域网:MAN,10km,城市: 广域网:WAN,100km以上,国家.全球. 二.OSI(Open Sys ...

  6. TCP/UDP对比总结

    目录 1 TCP-UDP对比 2 UDP介绍 3 TCP介绍 3.1 可靠传输的原理和实现 3.1.1 可靠传输原理 3.1.2 可靠传输实现 3.2 TCP面向连接管理 3.2.1 建立连接 3.2 ...

  7. 《TCP/IP - TCP/UDP》

    一:概述 - 由于 IP 的传输是无状态的,IP 提供尽力服务,但并不保证数据可以到达主机. - 所以,数据的完整性需要更上层的 传输层来保证.TCP和UDP 均属于 传输层. 二:UDP - 特点 ...

  8. TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS

    internet:通用名词,由多个计算机网络组成的网络,网络间的通信协议是任意的 Internet:专用名词,当前全球最大的开放计算机网络,采用TCP/IP协议族作为通信的规则.www万维网是广泛应用 ...

  9. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  10. TODO:Golang语言TCP/UDP协议重用地址端口

    TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...

随机推荐

  1. np一些基本操作1

    ##生成一个一维数组import numpy as np;nb7 = np.arange(0,100,2);print(nb7)print("======================== ...

  2. 2019-8-31-dotnet-通过-WMI-获取系统安装的驱动

    title author date CreateTime categories dotnet 通过 WMI 获取系统安装的驱动 lindexi 2019-08-31 16:55:59 +0800 20 ...

  3. Ubuntu时间管理方法

    1. date 命令主要用于显示以及修改系统时间 2. hwclock 命令用于查看设置硬件时间,以及同步硬件时间与系统时间 # 显示硬件时间hwclock # 设置硬件时间hwclock -set ...

  4. __name__变量

    再写项目过程中,将功能函数写在 if  __name=="__main__":之外,执行代码写在之中,如下:如果在foo模块打印__name__为__main__,而如果在bin模 ...

  5. 伸缩布局flex

    一.伸缩布局的起源 1.之前我们想要适应不同的浏览器,一般采用的是设置宽度.高度为父级元素的百分比,但是有时候百分比的计算是相当复杂的,加上有时候还有规定的宽度要设置,所以,伸缩布局的出现是我们所急需 ...

  6. 内容溢出文字用"..."代替 以及超出文本内容换行

    text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 超出.....代替 overflow: hidden; word-break: ...

  7. 关于使用注解设置token免拦截 和 必要 的权限拦截

    先说一下这样子做的原理:将某一个注解配置在方法头部,在spring实例化的时候会将注解以切面的形式注入给方法,在拦截的地方判断当前方法有没有注入指定的注解类. 1.先声明一个注解类(类中不需要做任何逻 ...

  8. IO流13 --- 转换流实现文件复制 --- 技术搬运工(尚硅谷)

    InputStreamReader 将字节输入流转换为字符输入流 OutputStreamWriter 将字符输出流转换为字节输出流 @Test public void test2() { //转换流 ...

  9. day67test

    作业 1.按照上方 知识点总结 模块,总结今天所学知识点: 2.有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/tv/001.png', titl ...

  10. JasperReports报表区段14

    我们将在本章开始,一个简单的报表模板的结构看.依样画葫芦JasperReports的结构报表模板归类到多个区段.部分是有规定的高度,并且可以包含像直线,矩形,图像或文本字段对象报表的部分. 通过提供的 ...