当前位置:网站首页>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的区别

边栏推荐
- 开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览
- 使用tidymodels搞定二分类logistic模型
- JVM知识点详细整理(长文警告)
- 深度强化学习应用实践技巧
- Pyqt5 rapid development and practice 6.6 qformlayout & 6.7 nested layout & 6.8 qsplitter
- PyQt5快速开发与实战 6.6 QFormLayout(表单布局) && 6.7 嵌套布局 && 6.8 QSplitter
- 【图像检测】基于灰度图像的积累加权边缘检测方法研究附matlab代码
- 重磅 | 基金会为白金、黄金、白银捐赠人授牌
- R language brca MRNA data set analysis
- 使用R包PreMSIm根据基因表达量来预测微卫星不稳定
猜你喜欢

Basic construction of QT project

Kunlunbase instruction manual (I) quick installation manual

Pytorch 入门

一键搭建博客:如何使用WordPress插件搭建专属博客

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

Summer 2022 software innovation laboratory training JDBC

Alibaba P8 broke out this interview guide for big factories. After reading it, the salary soared by 30K!

若依如何实现添加水印功能

R 语言 用黎曼和求近似 积分

开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览
随机推荐
【图像检测】基于灰度图像的积累加权边缘检测方法研究附matlab代码
factoextra:多元统计的可视化
Meeting OA project (V) -- meeting notice and feedback details
Pyqt5 rapid development and practice 6.6 qformlayout & 6.7 nested layout & 6.8 qsplitter
WPF 截图控件之绘制方框与椭圆(四) 「仿微信」
Why use markdown to write?
美团、饿了么被杭州市监约谈要求落实食品安全管理责任 严禁恶意竞争
2022cuda summer training camp Day5 practice
How can agile development reduce cognitive bias in collaboration| Agile way
Roots of equations in R language dichotomy and Newton iteration
2022cuda summer training camp Day2 practice
R语言 使用数据集 veteran 进行生存分析
Sunwenlong, Secretary General of the open atom open source foundation, worked together to expand open source
深度强化学习应用实践技巧
重磅 | 开放原子校源行活动正式启动
1. (map tools) detailed tutorial of acrgis desktop10.5 software installation
Kunlunbase instruction manual (III) data import & synchronization
Kunlunbase instruction manual (II) best practices for peer-to-peer deployment
The heavy | open atomic school source activity was officially launched
DoD 和 DoR,消减「认知偏差」的两大神器