Tcp协议介绍
前情提要:根据域名建立tcp链接之前要做两件事情,1 根据arp协议找到网管mac地址 2 通过dns服务器解析出域名的Ip地址,解析出域名的Ip地址之后就可以建立tcp链接了。
tcp协议三个特点:1 实现可高传输 2 实现流量控制 3 避免网络拥塞
tcp首部:
序号:表示传输数据第一个字节 是整个数据中的第几个字节
确认号:表示下一个链接过来的传输数据的第一个字节 是整个数据中的第几个字节
URG:值为1时表示数据不用进入TCP缓存池排队,直接发送给接收端
ACK:表示确认号码是否有效,0无效 1有效
SYN:值为1时表示发起会话请求的标识,其他为0后者不传(一般用于tcp握手阶段)
PSH:值为1时表示接收端要提前提交给应用程序,不要进入TCP缓存池
RST: 值为1时表示终端链接
RST:值为1时表示释放链接
TCP三次握手
为什么要进行三次握手?
理论上2次握手已经可以判断网络是通畅的,但是为什么还要进行第三次呢?主要是为了解决当第一握手时,如果出现网络延迟时,客户端一段时间没有收到服务器的响应 就会再发一次握手信息,此时服务器会给客户端一个响应。后面客户端一次发送的握手信息,又传送到服务器,此时服务器会在给客户端一个响应,此时客户端就不会在处理这个响应,如果没有第三次握手,服务器还在等待着客户端传输数据,会很浪费服务器资源。
TCP四次挥手
tcp 链接图
Tcp协议介绍的更多相关文章
- Python基础教程之udp和tcp协议介绍
Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...
- 基于TCP协议的项目架构之Socket流传输的实现
项目背景 某银行的影像平台由于使用时间长,服务器等配置原因,老影像系统满足不了现在日益增长的数据量的需求,所以急需要升级改造.传统的影像平台使用的是Oracle数据库和简单的架构来存储数据(视频.图 ...
- python中基于tcp协议的通信(数据传输)
tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...
- TCP/IP 协议介绍
转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...
- TCP协议RST:RST介绍、什么时候发送RST包
TCP协议RST:RST介绍.什么时候发送RST包 RST标示复位.用来异常的关闭连接. 1. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓冲区中的包,发送RST. 2. 而接收端收 ...
- tcp协议以及socket介绍
壹:tcp协议:可靠传输 一: 3次握手,建立链接:4次挥手,断开链接 3次握手,建立链接:图解 ,这样双向通路就建立完成了. 在建立链接时,并没有数据传输,所以中间两部可以合在一起,也就是3次握手, ...
- TCP/UDP 协议介绍
TCP/IP五层网络结构模型 物理层:物理层建立在物理通信介质的基础上,作为系统和通信介质的接口,用来实现数据链路实体间透明的比特 (bit) 流传输.只有该层为真实物理通信,其它各层为虚拟通信 数据 ...
- 以太网接口TCP/IP协议介绍,说的很容易懂了
以太网接口TCP/IP协议介绍,说的很容易懂了 TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列. TCP/IP协议栈(按TCP/IP参考模型划分) 应用层 FTP SMTP HTT ...
- 【网络协议】TCP协议简单介绍
本文仅仅是对TCP协议做个简要的介绍. TCP协议,即传输控制协议.与UDP协议同处于传输层,相同使用相同的网络层,但TCP提供了一种可靠的.面向连接的传输数据服务,它会在两个使用TC ...
随机推荐
- mssql 取数据指定条数(例:100-200条的数据)
方法1:临时表 * into #aa from table order by time-- 将top m笔插入 临时表 select * from #aa order by time desc --d ...
- [好好学习]在VMware中安装Oracle Enterprise Linux (v5.7) - (2/5)
- 学Python的第五天
最近忙着学MySQL,但是小编也不会放弃学Python!!! 因为热爱所以学习~ 好了各位,进入正题,由于时间问题今天学的不是很多.... #!/usr/bin/env python # -*- co ...
- 使用Varnish加速Web
通过配置Varnish缓存服务器,实现如下目标: - 使用Varnish加速后端Web服务 - 代理服务器可以将远程的Web服务器页面缓存在本地 - 远程Web服务器对客户端用户是透明的 - 利用缓存 ...
- OGG-00664
参数SID写错了 GGSCI (t2) > edit param exta extract exta setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) se ...
- unixbench
1.下载 https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz 2.修改Makefile 交叉编译 #CC=gccCC = a ...
- Chronograf启动(Influxdb的管理平台)
1.创建一个bat文件,文件内容如下 @echo off:: 开启chronograf服务,服务监听端口9084echo 开启chronograf服务chronograf.exe /port 9084 ...
- 4,fail-fast错误机制
一,fail-fast简介 在JDK的Collection中我们时常会看到类似于这样的话: ArrayList 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出 ...
- 怎么测试php代码
没有任何一名程序员可以一气呵成.完美无缺的在不用调试的情况下完成一个功能或模块.调试实际分很多种情况. 暴力调试 这种方式简单粗暴,一般PHP程序员都会用,那就是浏览器调试,在编辑器内写完代码后随后打 ...
- 20180708-Java运算符
public class Test{ public static void main(String args[]){ int a = 10; int b = 20; int c = 25; int d ...