TCP/IP协议碎碎念

整个TCP过程描述:

1)服务器默认的状态是LISTEN,客户端先向服务器发送一个SYS,表明自己要求链接,这时候客户端处于SYS_SENT状态;

2)服务器收到SYS,返回一个ACK,同时再补上一个SYS,这时候服务器端处于SYS_RECEIVE状态;

3)客户端收到了服务器返回的SYS,自己进化成ESTABLISHED状态,然后应答那个ACK,服务器接收到这个应答ACK,进化成ESTABLISHED状态。这样两个就算彻底连接了。

以上简称“三次握手”。

然后客户机与服务器可以传送数据,keepalive。

4)客户端向服务器发送一个FIN告诉服务器可以断开连接了,此时客户端处于FIN_WAIT 1状态。

5)服务器收到这个信息得知可以断开连接了,服务器处于CLOSE_WAIT状态,然后发送信息告诉客户端,服务器这时候处于LAST_ACK状态。

6)客户端收到服务器确认断开连接的信息,进化成FIN_WAIT 2状态,最后成为TIME_WAIT状态。等待一些时间已确保能收到服务器的应答。

以上过程简称“四次挥手”。

TCP的传输过程一共是十一个状态:LISTEN,SYS_SENT,SYS_RECEIVE,ESTABLISHED,FIN_WAIT 1,FIN_WAIT 2,CLOSE_WAIT,CLOSEING,LAST_ACK,TIME_WAIT,CLOSED.

CLOSEING:等待远端TCP 的连接终止请求确认

CLOSED:不在连接状态(其实是不存在的)

那么为什么TCP非要采取三次握手呢?

主要原因就是防止“由于网络阻塞,失效的信息又复活”的情况,举个例子:

A要给B传数据,开始的时候A传了一次请求,但是这个请求失效了,于是过了一段时间之后,A又穿了一次请求,这个时候B收到了,两个开始快乐的交流。交流完毕,双方断开。但是这个时候那个失效的信息终于爬到了B端,B也会如期打开端口跟A建立连接,A一看B来张开怀抱,那么A也要张开怀抱,但是A原打算要的数据已经都得到了,这一次虽然建立了链接,但是没东西可以要了。那么这样的链接就是空连接,白白浪费带宽。

TCP VS UDP

先说相同点,他俩都可以全双工,而且都是端到端的传输层通信协议。

TCP一般用来进行文件传输,因为文件的传输要求真真切切,一丝一毫都不能少,所以每一次建立必须要求数据都是十全十美。

TCP只能一对一,不支持广播和多播,TCP是面向字节流的。传输速度慢。

UDP一般用来网络语音传输,建立为主,通信质量其次。

UDP虽然不可靠但是也会尽全力交付,他是面向报文的,应用层给UDP什么样的报文,UDP就传送什么样的报文。

UDP支持一对一,一对多,多对多(各种视频会议),传输速度快。

时间: 2024-10-14 03:11:01

TCP/IP协议碎碎念的相关文章

戏说西游||TCP/IP协议的由来(灵感来自“码农翻身”微信公众号)

引子 话说唐僧师徒四人西行取经,终于来到了西方极乐世界,取得真经,然而如何运回真经成了大问题,故事就这样展开了: 大唐王朝贞观八十一年,某日清晨 "悟空,为师带领你们终于取得真经,可是奈何如何将真经运回东土大唐呢?" "师傅,不用担心,俺老孙在筋斗云的基础上开发出了运输真经的法术--'TCP协议',只要严格学习俺法术的口诀,严格遵守俺定制的规则,只需要不断的往筋斗云上放经文,筋斗云就会自动往返运输真经,俺可保真经运回大唐!" "不愧是悟空,既然如此,悟能,

http、TCP/IP协议与socket之间的区别

网络由下往上分为:  www.2cto.com 物理层-- 数据链路层-- 网络层--                       IP协议 传输层--                       TCP协议 会话层-- 表示层和应用层--           HTTP协议 1.TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议三次握手与四次握手流程解析

原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图 上图中有几个字段需要重点介绍下:   (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.   (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.   (3)标志位:共6个,即URG.ACK.PSH.RST

TCP/IP协议族

TCP/IP协议 TCP/IP协议栈主要分为四层:应用层.传输层.网络层.数据链路层,每层都有相应的协议,现在几乎所有的操作系统都实现了TCP/IP协议栈.如下图 上图运输层应为传输层 所谓的协议就是双方进行数据传输的一种格式.整个网络中使用的协议有很多,所幸的是每一种协议都有RFC文档.在这里只对IP.TCP.UDP协议头做一个分析. 首先来看看在网络中,一帧 以太网数据包的格式: 在Linux 操作系统中,当我们想发送数据的时候,我们只需要在上层准备好数据,然后提交给内核协议栈 , 内核协议

TCP/IP协议

为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用.只有把它们联合起来,电脑才会发挥出它最大的潜力.于是人们就想方设法的用电线把电脑连接到了一起. 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息.因而他们需要定义一些共通的东西来进行交流,TCP/IP就是

python学习笔记-Day9 (TCP/IP协议、socket)

TCP/IP协议 TCP/IP四层协议 TCP/IP概念 tcp/ip协议是主机接入互联网以及接入互联网的两台主机通信的标准. 数据帧概念 数据帧 |-- 包头 | |--源地址 | |--目标地址 | |--数据类型 | |-- 数据 socket在四层协议中的位置 socket协议的交互流程 socket初试 # 依照上socket流程图,实现一个功能,客户端输入什么,就把输入的转为大写 # soceet server import socket ip_port=('127.0.0.1',9

TCP/IP知识总结(TCP/IP协议族读书笔记二)

接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻辑地址,反过来的映射也是必要的. 这时候就涉及两个概念:静态映射与动态映射. 静态映射就是创建一个表,将逻辑地址与物理地址关联起来,这个表存储在网络的每一个机器上.可是存在于网络中的机器的物理地址是经常会发生改变的(更换网卡),这样静态映射表就得时常更新,影响网络的性能. 动态映射就是每当机器知道其