当前位置:网站首页>TCP和UDP
TCP和UDP
2022-07-29 10:53:00 【51CTO】
今天上计算机网络的课,老师刚讲完传输层这一章,晚上打算写一篇博客,来巩固下今天的所学
一,传输层的特点
传输层是为上层的应用层提供通信服务的,他属于面向通信部分的最高层,但也是用户功能中的最低层
传输层的特点
- 传输层是为应用进程之间提供端到端的逻辑通信,而网络层是为主机之间提供逻辑通信
- 复用和分用
- 传输层还提供差错检测功能,而在网络层中,IP数据报首部的检验和字段之检验首部是否出现差错而不检验数据部分
进程之间的通信
从IP层来说,通信的两端是两台主机,因为IP数据报中明确标明了两台主机的IP地址,但是这仅仅限于网络层,因为IP协议虽然能将分组送到目的主机,但是这个分组还停留在主机的网络层而不是应用层,所以,从传输层的角度来说,两台主机之间进行通信应该是两台主机之间的应用进程进行通信
二,端口号
简介
TCP/IP的传输层使用16位的端口号来标识一台计算机中某个的进程,但是这个端口号仅仅只有本地意义,即这个进程所使用的端口号在他所在的计算机中是唯一的,但是在互联网中未必唯一,即相同的端口号在互联网中是没有关联的
分类
- 服务器端使用的端口号
- 熟知端口号(系统端口号)
概念:TCP/IP中最重要的一些程序所分配的端口号
范围:0~1023 - 登记端口号
概念:为没有熟知端口号的程序使用
范围:1024~49151

- 客户端使用的端口号(短暂端口号)
概念:留给客户端程序短暂使用的端口号,通信结束,又可以分配给其他进程使用
范围:49152~65535
端口的复用和分用
复用
应用层的所有应用进程数据都可以通过利用一个传输层协议传输到网络层
分用
传输层从网络层接收到数据后交付给指定的应用进程
三,TCP和UDP
UDP
UDP概述
UDP(用户数据报协议)是一种无连接的协议,在传输数据之间不需要双方进程建立连接,目的主机进程在接收到数据之后也无需给出任务确认,即UDP是不可靠交付,但是却是一种有效的工作方式在某些方面
UDP特点
- UDP是无连接的
- UDP尽最大努力交付,即不可靠交付,主机不需要维持复杂的连接状态表
- UDP是面向报文的
- UDP没有拥塞控制,因此网络出现拥堵时不会使源主机的发送效率降低,有利于实时性应用
- UDP支持一对一,一对多和,多对一和多对多的交互通信
- UDP首部开销小
面向报文的UDP
在发送方,应用层交给传输层UDP多长的报文,UDP对报文不改变大小,在添加上UDP首部后便发送给接收方,接收方UDP接收到发送来的报文,在去除首部后,也会原封不动的交给上层的应用进程,即UDP是一次性交付一个完整的报文,因此应用程序必须选择合适大小的报文
报文太长,UDP交给IP层后,IP层在传输时因为MTU的限制,可能需要进行分片传输,这样则会降低IP层的效率
报文过短,UDP交付给IP层后,则会显得IP数据报的首部过大,这样也会降低IP层的效率
UDP首部格式
TCP
TCP概述
TCP是提供面向连接的服务,在传输数据之前必须先建立连接,传输结束后要释放连接,TCP不提供广播或者多播服务,由于TCP提供可靠的,面向连接的数据传输服务,所以不可避免的会增加很多开销,且TCP首部也增大很多,占用很多资源
TCP特点
- 面向连接的传输层协议
- 点对点通信,全双工通信
- 可靠交付
- 面向字节流
面向字节流的TCP协议
虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个缓冲,当应用程序传送的数据块太长,TCP就可以把它划分短一些再传送。如果应用程序一次只发送一个字节,TCP也可以等待积累有足够多的字节后再构成报文段发送出去。类似一个“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小
TCP报文格式

TCP和UDP的区别

边栏推荐
- 软件测试干货
- Atomic operation of day4 practice in 2022cuda summer training camp
- R语言 使用数据集 veteran 进行生存分析
- The heavy | open atomic school source activity was officially launched
- 重磅 | 开放原子校源行活动正式启动
- Use R-Pack skimr to collect the beautiful display of President measurement
- 浅谈安科瑞灭弧式智慧用电在养老机构的应用
- Meeting OA project (V) -- meeting notice and feedback details
- Structure the eighth operation of the combat battalion module
- 开放原子开源基金会秘书长孙文龙 | 凝心聚力,共拓开源
猜你喜欢

Learning R language these ebooks are enough!

Kunlunbase instruction manual (III) data import & synchronization

QWidget、QDialog、QMainWindow 的异同点

专访 | 阿里巴巴首席技术官程立:云 + 开源共同形成数字世界的可信基础

Site data collection -scrapy usage notes

LeetCode二叉树系列——144.二叉树的前序遍历

Watch the open source summit first | quick view of the sub Forum & Activity agenda on July 29

主子仓库都修改,如何进行同步?

Leetcode binary tree series -- 144. Preorder traversal of binary trees

PaddleLite 编译以及代码跑通复盘
随机推荐
使用R包skimr汇总统计量的优美展示
Spark efficient data analysis 01. Establishment of idea development environment
2022cuda summer training camp Day5 practice
ES6-箭头函数this指向
站点数据收集-Scrapy使用笔记
R language brca MRNA data set analysis
One click blog building: how to use WordPress plug-in to build a dedicated blog
阿里架构师耗时一年整理的《Lucene高级文档》,吃透你也是大厂员工!
学习R语言这几本电子书就够了!
DNS协议、ICMP协议、NAT技术
StarRocks 技术内幕:实时更新与极速查询如何兼得
Pytorch 入门
LeetCode_278_第一个错误的版本
Use tidymodels to solve the binary logistic model
2022cuda summer training camp Day2 practice
R language uses data set veteran for survival analysis
DoD 和 DoR,消减「认知偏差」的两大神器
8.穿插-从架构设计到实践理解ThreadPoolExecutor线程池
PaddleLite 编译以及代码跑通复盘
Adcode city code in Gaode map API