❶ 计算机网络基础:TCP、UDP协议的简单介绍及区别
TCP(Transmission Control Protocol,传输控制协议),属于TCP/IP协议模型中的 传输层 ,是 基于连接 的协议。
TCP协议通过序列化应答和必要时重发数据包,为应用程序提供了可靠的传输流和虚拟连接服务。
面向连接 指的是在发送数据之前,必须与对方建立可靠的连接,就像打电话一样,你得先拨号,然后保证线路通畅,对方接听了电话,这时才能互相通话。这个建立连接的过程被称作“三次握手”。
妹子:在吗?
(你没有回应……)
GG,你将永远失去她。
妹子:在吗?
(一个小时过去了)
你:在
这时候妹子的问题已经解决了,而你却激动地等待着她的回复。
(她什么时候才能回我啊.jpg)
当然这不是我们想看到的结果
妹子:在吗?(第一次握手)
你:在(第二次握手)
妹子:问你一个问题(第三次握手)
这时,她确定你在,所以会准备问问题,你也确定她在,所以激动紧张的等待没有白费
接下来你们开始愉快地聊天(数据传输)
终止连接的过程称之为“四次挥手”或者“四次分手”(感觉后者不太吉利,以下就用挥手)
继续用刚才的微信发消息来举例:
你:我讲完了, 你懂了吗?(第一次挥手)
妹子:懂了,我也问完了(第二次挥手)
妹子:谢谢谢,那我下了(第三次挥手)
你:好,我也下了(第四次挥手)
如果只有一、二、三次挥手的话,结果很容易自己想到。
建立连接的三次握手,和终止连接的四次挥手,都是为了保证双方应答有效,避免让某一方持续等待接受数据而造成的资源浪费。在例子中体现为,开始聊天时不会咕咕咕,结束时不会突然去世。
UDP(User Datagram Protocol,用户数据报协议),属于TCP/IP模型中的传输层,它是一种 无连接 的传输层协议,提供面向事务的 简单不可靠 信息传送服务。
注:传输可靠指的是,通过拥塞控制、流量控制、超时重发、丢弃重复数据等等可靠性检测手段,保证数据无差错、不丢失、不重复且按序到达。
❷ 计算机网络TCP/IP等相关协议与原理
网络分层(由下到上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
重点在: 物理层、数据链路层(这两层需要了解基本的原理)、网络层、传输层(这两层需要了解功能作用,原理和相关的一些协议)、应用层(http协议)。
开始之前先跟大家说一下协议,很多人不知道协议是什么,尤其是刚接触这方面东西的时候,一听协议,感觉很吊的样子,但是又不知其所云,其实,协议可以理解为:一个双方通信需要共同遵守的规范。
记住,在网络分层协议中,所有下层的协议的作用就是为了上层服务,谨记!
接下来,我跟大家一一道来,首先登场的是物理层。
这一层主要就是跟硬件打交道,这一层也是所有上层的基础。
数据链路层强调的是一种传输规范,这是指什么呢?说白了,就是指每次传输的最大容量(最大传输单元),数据组织结构(以太网帧的概念)、传输的目的地等。
MAC地址:烧录在网卡ROM中的一串数字,长度48bit。
分组交换:较大数组分割为较小数组,依次发送。
原因是数据链路层有不定长度的最大传输单元。
以太网的帧的概念:前导码(8字节)+本体(首部+数据+FCS)
原理:依靠MAC地址决定向哪个端发送数据,需要“转发表”。
转发表是交换机自动学习得到的。
作用:保证不同数据链路层下数据的可达性。
ARP协议(获取MAC地址)和ICMP协议(数据发送异常通知)
作用:识别对端信息的地址。地址为32位正整数表示,分为四个部分,每个部分由8位整数组成。说白了,是识别要传输目的地的地址。
每位对应十进制范围:0-255。
[注]:网络标识和主机标识是为了寻址而发明。
A类:
第一位为“0”的地址,前8位为网络标识,0.0.0.0-127.0.0.0是A类IP地址的理论范围。
B类:
前两位为“10”的地址,前16位是网络标识,128.0.0.0-191.255.0.0,主机标识16位。
C类:
前三位为“110”的地址。前24位网络标识,192.0.0.0-223.255.255.0,主机标识为8位。
D类:
前4位为“1110”的地址。网络标识为32位,没有主机标识。
IP地址长度仅可表达43亿左右的主机数目,(区分网络标识和主机标识)共32位(一段连续的0和一段连续的1)组成,1的长度就表示网络标识的长度。
子网掩码的作用是区分IP地址是否在同一子网内。
分组数据发送到目标地址的功能,持有路由控制表,它在路由控制表中查找目标IP地址对应的下一个路由器地址。
源主机--->网卡--->路由器1(路由器控制表)--->路由器2--->网卡--->目标主机
IP协议最大包为2的16次幂,等于65536.
接下来介绍几个IP协议相关的协议或技术:
将域名转化为IP地址(域名也是分层处理请求的,每一层都有对应的DNS服务器)。
通过目标IP地址,定位下一个接收数据包的网络设备(主机或路由器)的MAC地址。
在数据链路层发送广播,如果没有ARP技术,就没有办法穿透中间的服务器(ARP请求+ARP应答)。
NAT:用于将局域网中的私有地址转换为全局IP地址的技术。
每个路由器只有一个对外的全局IP地址,如果一个内网主机都向外通讯,怎么办?
就要使用到NATP技术,可转为TCP和UDP端口号。
不同的内网IP被转换成同一个公共的IP,但是NAPT技术可以使用不同的端口加以区分。
NAT和NAPT都需要路由器内部维护一张转换表。
举例:TCP首次SYN时,会生成这个表,关闭连接时会发出FIN包,收到这个包应答时转换表会被删除。
定义:实现应用程序之间的通信。
TCP:面向有连接的协议,建立连接需要3步,关闭连接需要4步。
具备数据重传、流量控制等功能,能正确处理丢包功能并有效利用宽带。
UDP:比较适合做实时视频和音频,效率比TCP高。
TCP有5个要素:源IP地址、目标IP地址、源端口号、目标端口号、协议号,同一台机器的端口号可以区分为不同的应用程序。
校验和=源IP地址(IP协议首部)+目标IP地址(IP协议首部)+源端口+目标端口
包长度=首部长度+数据长度
应该可以从下图看出来,TCP的首部比UDP的首部要复杂的多,所以也一定会影响的传输的速度和效率。
简单介绍一下首部的相关参数:
序列号:发送数据的位置
确认应答号:下一次应用接收到的数据的序列号
数据偏移:TCP首部的长度,单位为4字节。
控制位:长度为8位。
窗口大小:用于表示从应答号开始能够接受多少个8位字节。
紧急指针:尽在URG控制位为1时有效,表示紧急数据的末尾在TCP数据部分中的位置。
接下来最重要的一个技术点来了:
以下是通俗话解释连接和断开过程:
建立连接的过程:
1.client:我要建立连接。
2.server:我知道你要建立连接了,我这边没问题。
3.client:我了解你知道我要建立连接了,开始通信吧!
结束连接的过程:
1.client:我要关闭连接了
2.server:你那边可以关闭了
3.server:我这边也准备关闭了
4.client:我已关闭,你可以关闭了
[注]:连接是双方面的,所以关闭也是要自行关闭的。
数据包重发:保证ACK的值和发送方下次发送数据包的序列号相等。
接收方通过TCP首部中的控制位SYN判断这个数据是否曾经接收过?接收过就会舍弃。
重传超时时间(RTO)动态改变,略大于连接往返时间(RTT),RTO有自己的估算公式
定义:无需等待ACK,可以发送的最大数量。(窗口大小由接收端控制)
作用:为了解决发送数据包后,直至ACK确认返回之前,发送端都无法在进行发送的问题。
定义:接收端有缓存区数据溢出(如果窗口较大)
通俗一点的意思就是让发送方慢一点,免得接收方接收不过来。
TCP会慢启动算法得出窗口的大小,对发送数据量进行控制。
发送方拥有一个拥塞窗口,对发送的数据量进行控制。
TCP协议中的窗口是指:发送方和接收方窗口中的最小值。
1.通讯开始,发送方窗口为1。每收到一个ACK确认后,拥塞窗口翻倍。
2.由于指数级增长快,很快就会出现确认包超时。
3.设置慢启动阈值,它的值为拥塞窗口的大小的一半。
4.将拥塞窗口大小设置为1,重新进入慢启动过程。
5.慢启动阈值存在,当拥塞窗口大小达到阈值时,不再翻倍,而是线性增长。
6.随窗口大小的不断增长,可以收到三次重复的ACK,进入“快速重发”阶段。
7.TCp将慢启动阈值设置为当前拥塞窗大小的一半,再将拥塞窗口大小设成阈值大小。
8.拥塞窗口又会线性增加,直至下一次出现3次ACK或者超时。
❸ 关于TCP/IP协议深度分析
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP协议介绍 TCP/IP的通讯协议
这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。
TCP/IP整体构架概述
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
TCP/IP中的协议
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
1. IP
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
2. TCP
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
3.UDP
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
4.ICMP
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
5. TCP和UDP的端口结构
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
源IP地址 发送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
TCP/IP协议的主要特点:
(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;
(2)独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;
(3)统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;
(4)标准化的高层协议,可以提供多种可靠的用户服务。
TCP/IP模型的主要缺点有:
首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来。
❹ 计算机网络中的TCP/UDP协议到底是怎么回事
两者都是传输层协议,TCP协议是面向连接,UDP是面向不连接。
简单来说用TCP给你发送一个消息,要经过三次握手。就相当于给你打电话,你电话不能是关机,也不能没信号,也不能拉黑。UDP就比较简单了,相当于短信(虽然关机也收不到,但是这串信息起码发出去了),UDP只管发送,而且占用资源少,你可以想象成电话费,打电话1分钟2毛,短信一条只需要一毛。但是电话比短信发送的内容更多,交互性更好。
❺ tcp协议的主要功能是什么
1、完成对数据报的确认、流量控制和网络拥塞。
2、自动检测数据报,并提供错误重发的功能。
3、将多条路径传送的数据报按照原来的顺序进行排列。
4、控制超时重发,自动调整超时值。
tcp协议简介:
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 [1] 另一个重要的传输协议。
在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
❻ TCP/IP网络体系结构中,各层内分别有什么协议,每一种协议的作用是什么
一、TCP/IP网络体系结构中,常见的接口层协议有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM等。
1.网络层
网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol) 、控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
2.传输层
传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram protocol)。
3.应用层
应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、RIP、NFS、HTTP。
二、TCP/IP网络体系结构中,每一种协议的作用有:
TCP/IP协议不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准,即使不考虑Internet,TCP/IP协议也获得了广泛的支持。所以TCP/IP协议成为一种联合各种硬件和软件的实用系统。
2.TCP/IP协议并不依赖于特定的网络传输硬件,所以TCP/IP协议能够集成各种各样的网络。用户能够使用以太网(Ethernet)、令牌环网(Token Ring Network)、拨号线路(Dial-up line)、X.25网以及所有的网络传输硬件。
3.统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址
4.标准化的高层协议,可以提供多种可靠的用户服务。
❼ 试分析TCP/IP协议的体系结构和特点
1、TCP/IP体系结构
TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:
IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。
ARP: 地址解析协议(Address Resolution Protocol),此协议将网络地址映射到硬件地址。
RARP: 反向地址解析协议(Reverse Address Resolution Protocol),此协议将硬件地址映射到网络地址。
ICMP: 网间报文控制协议(Internet Control Message Protocol),此协议处理信关和主机的差错和传送控制。
TCP: 传送控制协议(Transmission Control Protocol),这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)
UDP: 用户数据报协议(User Datagram Protocol),这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。
FTP: 文件传输协议(File Transfer Protocol),允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。
SMTP: 简单邮件传送协议(Simple Mail Transfer Protocol),SMTP协议为系统之间传送电子邮件。
TELNET:终端协议(Telnet Terminal Procotol),允许用户以虚终端方式访问远程主机。
HTTP: 超文本传输协议(Hypertext Transfer Procotol)。
TFTP: 简单文件传输协议(Trivial File Transfer Protocol)。
2、TCP/IP特点:
TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:
(1)是由内核心直接提供的系统调用;
(2)使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。
❽ TCP是什么意思
TCP是一种传输控制协议,是面向连接的、可靠的、基于字节流之间的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,TCP完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。
在因特网协议族(Internet protocol suite)里面,TCP层是在IP层上面,应用层下面的一个中间层。不同主机的应用层之间经常会要用到可靠的、像管道一样的连接,但是IP层不会提供这样的流机制,而是提供不可靠的包交换。
(8)计算机网络tcp协议分析扩展阅读:
当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。