计算机网络 5.6-5.8 TCP/UDP
来看看传输层的位置

要点:


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

传输层与应用层就是端口 (传输层的应用访问点 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的更多相关文章
- TCP/UDP详解
转载:http://www.cnblogs.com/visily/archive/2013/03/15/2961190.html, 作者:望梅止渴 相关: HTTP协议详解 深入理解HTTP协议 T ...
- High Performance Browser Networking - TCP UDP TLS
延迟 定义和标准延迟 延迟简单地说,它是一种转移或信息包从起点到终点,所花费的时间. 延迟=发送延迟+传播延迟+处理延迟+排队延迟: Propagation delay 传播时延 传播时延这个概念.是 ...
- 三十天学不会TCP,UDP/IP网络编程-IP头格式祥述
我又来了,这篇文章还是来做(da)推(guang)介(gao)我自己的!俗话说事不过三,我觉得我下次得换个说法了,不然估计要被厌恶了,但是我是好心呐,一定要相信我纯洁的眼神.由于这两年接触到了比较多的 ...
- TCP&UDP&Socket讲解(上)
这两天我将整理TCP&UDP&Socket,大约花大家10-15分钟之间,希望本篇文章让大家对TCP使用的理解提高一个层次. 建议大家拿出纸和笔,画一下!!! 一.TCP 1. TCP ...
- 计算机网络、OSI模型、TCP/IP族
一.计算机网络分类 1.按通信距离分类: 局域网:LAN,10m-1000m,房间.校园: 城域网:MAN,10km,城市: 广域网:WAN,100km以上,国家.全球. 二.OSI(Open Sys ...
- 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 ...
- 《TCP/IP - TCP/UDP》
一:概述 - 由于 IP 的传输是无状态的,IP 提供尽力服务,但并不保证数据可以到达主机. - 所以,数据的完整性需要更上层的 传输层来保证.TCP和UDP 均属于 传输层. 二:UDP - 特点 ...
- TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS
internet:通用名词,由多个计算机网络组成的网络,网络间的通信协议是任意的 Internet:专用名词,当前全球最大的开放计算机网络,采用TCP/IP协议族作为通信的规则.www万维网是广泛应用 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- TODO:Golang语言TCP/UDP协议重用地址端口
TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...
随机推荐
- CSS奇数、偶数、指定数样式
原文: https://blog.csdn.net/wangjia200913/article/details/49615325 语法 :nth-child(an+b) 第一种:简单数字序号写法 ...
- Activiti流程变量
流程变量在整个工作流中扮演很重要的作用 例如:请假流程中有请假天数.请假原因等一些参数都为流程变量的范围.流程变量的作用域范围是流程实例.也就是说各个流程实例的流程变量是不相互影响的. 添加流程变量 ...
- intellij idea中去除@Autowired注入对象带来的下划线提示
场景: idea中通过@Autowired注入的对象一直有下划线提示,虽然不影响运行 解决:改变@Autowired的检查级别即可. 快捷键:Ctrl+Alt+s,进入idea设置界面,输入inspe ...
- 2018-10-31-C#-7.0-使用下划线忽略使用的变量
title author date CreateTime categories C# 7.0 使用下划线忽略使用的变量 lindexi 2018-10-31 14:4:9 +0800 2018-10- ...
- NFS和mount常用参数详解 本文目录
NFS和mount常用参数详解 本文目录 NFS权限参数配置 mount挂载参数 原始驱动程序的挂载选项. 新驱动程序的挂载选项. 怎样改变已经挂载的NTFS卷的权限? 怎样自动挂载一个NTFS卷 ...
- Luogu P3558 [POI2013]BAJ-Bytecomputer(线性dp)
P3558 [POI2013]BAJ-Bytecomputer 题意 给一个只包含\(-1,0,1\)的数列,每次操作可以让a[i]+=a[i-1],求最少操作次数使得序列单调不降.若无解则输出BRA ...
- PHP 类与对象 全解析方法
1.类与对象 对象:实际存在该类事物中每个实物的个体.$a =new User(); 实例化后的$a 引用�php的别名,两个不同的变量名字指向相同的内容 封装: 把对象的属性和方法组织在一个类(逻辑 ...
- Linux产生coredump文件(core)
1.可以使用命令 ulimit -c unlimited 来开启 core dump 功能,并且不限制 core dump 文件的大小: 如果需要限制文件的大小,将 unlimited 改成你想生成 ...
- Joomla 随记
使用 joomla 开发好几个网站了,记录一下基础的东西吧~ 一.下载: 进入 joomla官网 下载: 二.安装 Joomla: 把下载好的 joomla 放到网站文件夹(图为wamp阿帕奇服务 ...
- JS的同步和异步加载
引言 JS的“加载”不能理解为下载,它是分为两个部分:下载,执行.默认的JS加载是同步的,因为浏览器需要一个稳定的DOM结构,而执行JS时可能会对DOM造成改变,所以在执行JS时一定会阻塞HTML的渲 ...