计算机网络学习笔记(五):运输层(待更新)

news2024/11/24 0:18:22

5.1 概述

5.1.1 TCP协议的应用场景

        TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间发送丢包、乱序,TCP负责重传和排序。下面是TCP的应用场景。

  • 多次交互:客户端程序和服务端程序需要多次交互才能实现应用程序的功能
    • 接收电子邮件的POP3
    • 发送电子邮件的SMTP
    • 传输文件的FTP
  • 数据需要分段传输:应用程序传输的文件需要分段传输
    • 浏览器访问网页:网页中图片和HTML文件需要分段后发送给浏览器
    • QQ传文件

5.1.2 UDP协议的应用场景

  • 数据无需分段传输:客户端程序和服务端程序通信,应用程序发送的数据包不需要分段。
    • DNS域名解析:客户端向DNS服务器发送一个报文解析某个网站的域名,DNS服务器将解析的结果使用一个报文返回给客户端。
  • 实时通信:发送端和接收端需要实时交互,不允许较长延迟(通信时无需建立连接)
    • 语音/视频聊天:即便有几句话因为网络堵塞没听清,也不允许使用TCP等待丢失的报文,等待的时间太长了,就不能愉快的聊天了。
  • 多播或广播通信
    • 学校多媒体机房:老师的电脑屏幕需要教室的学生电脑接收屏幕,在老师的电脑安装多媒体教室服务端软件,在学生的电脑安装多媒体教室客户端软件。老师电脑使用多播地址或广播地址发送报文,学生电脑都能收到。
  • 注:同一个应用程序,可能会使用不同的协议。
    • QQ文字聊天、语音聊天、视频聊天:UDP协议
    • QQ传文件:TCP协议

5.2 三大关系

5.2.1 传输层协议和应用层协议之间的关系

        通常,传输层协议加一个端口号来标识一个应用层协议

  • 常见的应用层协议和传输层协议
    • HTTP默认使用TCP的80端口
    • HTTPS默认使用TCP的443端口(访问安全网站)
    • FTP默认使用TCP的21端口
    • SMTP默认使用TCP的25端口
    • POP3默认使用TCP的110端口
    • Telnet使用TCP的23端口
    • RDP默认使用TCP的3389端口(远程桌面协议)
    • Windows访问共享资源使用TCP的445端口
    • 微软SQL数据库默认使用TCP的1433端口
    • MySQL数据库默认使用TCP的3306端口
    • DNS使用UDP or TCP 的53端口

端口

  • 取值范围:端口用一个16端口号进行标志,允许有65536不同的端口号。
  • 分类:2大类、3小类
    • 服务器端使用的端口号
      • 熟知端口号:0 ~ 1023
      • 登记端口号:1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA登记,以防止重复。
    • 客户端使用的端口号
      • 短暂端口号:49152 ~ 65535,留给客户进程选择暂时使用。
      • 当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
  • 作用:端口号只具有本地意义,只是为了标志本计算机应用层中的各进程。在互联网中,不同计算机的相同端口号是没有联系的;同一计算机的不同进程使用不同的端口号(唯一)。
    • 服务器上端口的作用:定位服务器上的服务
      • 服务器给网络中的计算机提供服务,服务器一旦运行某个服务,该服务就会使用TCP/UDP协议的相应端口来侦听客户端的请求、等待客户端的访问,每个服务使用的端口必须唯一。
      • 当不同客户端访问同一服务器上的不同应用时,数据报最终都会到达同一服务器。此时,需要使用服务器上的端口号来定位服务,以便将不同的请求转到相应的服务进行处理。
    • 客户端上端口的作用:确定数据包返回后给哪个客户端实例

  • 注(重要!!!):同一台计算机既可以作为服务端,也可以作为客户端(即服务端和客户端是相对的)。

 

  • 小结:两个计算机中的进程要互相通信,不仅必须知道对方的端口号为了找到对方计算机中的应用进程) ,而且还要知道对方的 IP 地址为了找到对方的计算机)。

5.3 用户数据报协议UDP(User Datagram Protocol)

5.3.1 UDP的特点

        UDP只在IP的数据报服务之上增加了很少一点的功能:

  • 功能1(复用和分用):使用端口标识不同的应用层协议
    • 注:如果不是为了复用和分用,应用程序完全可以将需要传输的报文交给网络层,而不需要经过传输层UDP。
  • 功能2(差错检测)

  • 面向无连接:发送数据之前不需要建立连接
    • 减少了开销:主机不需要维持复杂的连接状态表(含有许多参数)
      • TCP:主机需要记录所有的TCP连接,可使用命令“netstat”查看(当大量用户同时访问web服务器时,web服务器需要记录所有的会话状态,消耗服务器的资源)
      • UDP:
    • 减少了时延
  • 面向报文:对于应用层交下来的报文,UDP既不合并,也不拆分,而是保留这些报文的边界。UDP一次交付一个完整的报文。

  • 尽最大努力交付/不提供可靠交付
    • 注:UDP本身是不保证可靠的,当发送的数据出现差错时,由发送端重新发送。
  • 不局限于一对一:UDP支持一对一、一对多、多对一和多对多的交互通信(即支持多播、广播
  • 无拥塞控制:网络出现的拥塞不会使源主机的发送速率降低(减少了时延)
    • 实时应用:要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的时延
    • 多媒体通信
  • 首部开销小
    • UDP:8个字节
    • TCP :20个字节

5.3.2 UDP的首部 

  • 源端口(选用):根据是否需要对方回信来确定是否使用
    • 需要对方回信:填入源端口号(系统随机产生)
    • 不需要对方回信:全0
  • 目的端口(必用):在终点交付报文时,必须使用(用于确定将该报文交付给上层的哪个具体应用程序)
  • 长度:UDP用户数据报的长度(首部+数据部分)
    • 最小值:8(仅有首部)
  • 检验和:检测UDP用户数据报在传输中是否有错(有错就丢弃)
    • 注:为了计算校验和,此处引入“伪首部”共同参与计算

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1185865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ai实景直播矩阵式引流---技术开发搭建(剪辑、矩阵、直播)

目前我们的短视频矩阵剪辑分发系统更新: 无人直播更新: 1、新增文案引流:已接入混元数据大模型,千帆数据大模型,星火数据大模型,盘古数据大模型,通义数据大模型,ChatGPT数据大模型…

muduo源码剖析之TimerQueue类

简介 TimerQueue ​ 通过timerfd实现的定时器功能,为EventLoop扩展了一系列runAt,runEvery,runEvery等函数TimerQueue中通过std::set维护所有的Timer,也可以使用优先队列实现 muduo的TimerQueue是基于timerfd_create实现&#…

Jupyter Notebook 内核似乎挂掉了,它很快将自动重启

报错原因: OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade perfo…

AD教程 (十)Value值的核对

AD教程 (十)Value值的核对 填写器件位号 直接根据原理图的原始编号进行更改 通过位号编辑器快速更改 点击工具,选择标注,选择原理图标注,进入位号编辑器 可以在位号编辑器中 设置处理顺序,从上往下还是从…

推荐一款网络拓扑自动扫描工具

topology-scanner Topology-Scanner是WeOps团队免费开放的一个网络拓扑自动扫描模块,可以自动发现网络设备的类型、网络设备之间的互联 资源下载地址:https://download.csdn.net/download/XMWS_IT/88510697 或 加 薇|信|号吗:xmws-IT 免…

C嘎嘎之类和对象下

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解顺序表和链表的利弊,能在不同的题…

MathType安装激活教程安装后点击exe闪退问题解决

MathType安装 官方下载地址:https://mathtype.org/download/ 1.打开下载好的安装包 2.点击我接受 3.等待。 4.默认C盘路径安装,不要修改,点击确定。 5.等待。 6.点击确定。 7.退出安装,安装完成! 8.软件安装后&…

人工智能基础_机器学习020_归一化实战_天池工业蒸汽量项目归一化实战过程_使用sklearn库中的最大最小值归一化和_sklearn库中的Z-score归一化_01---人工智能工作笔记0060

首先我们找到对应的数据,天池蒸汽项目的数据. import pandas as pd 导入文件读取库 import numpy as np 导入数学计算库 df=pd.readcsv(./zhenggi_train.txt,sep=\t) 读取csv文件,这个就是天池的用tab分割的数据 X_train = df . iloc[:,: - 1],我们我们切片,从0列,切片到…

Loki | 数据过期自动删除策略设计

最近使用 Loki 碰到一个比较蛋疼问题,配置日志过期时间,配置这种事情,自然是要参照官方文档了,当时就找到了这个文档,地址: https://github.com/grafana/loki/blob/v1.5.0/docs/operations/storage/retenti…

手写txt模拟数据库简易框架

一.前言 之前学校让我们写控制台饿了么项目,当时进度没有到数据库,所以用的文本文件txt,来模拟数据库的实现,其实本质上就是一个文件读写,但是简单文件读写并不能包含我们想要的功能,例如条件查询&#xff…

【算法秘籍】藏在0和1之间的秘密,助你码出优秀人生

《算法秘籍》双十一 5折购书,就在京东商城 数据结构和算法是计算机科学的基石,是计算机的灵魂,要想成为计算机专业人员,学习和掌握算法是十分必要的。不懂数据结构和算法的人不可能写出效率更高的代码。计算机科学的很多新行业都离…

Discord将切换到临时文件链接以阻止恶意软件传播

导语 Discord是一个广受欢迎的社交平台,但其服务器长期以来一直是恶意活动的温床。为了解决这个问题,Discord决定采取行动,将切换到临时文件链接,以阻止恶意软件的传播。本文将介绍Discord的最新举措,并探讨其对用户安…

C盘清理指南(三)——文件目录更改

各位小伙伴你们好,今天的推送是C盘清理系列的第三期——文件路径更改,分为文件夹路径和软件默认路径两个模块。 一.文件夹路径更改 点击进入C盘,依次点击上方“查看——隐藏的项目”,可以看到C盘中各种隐藏目录。 单击…

kafka微服务学习

消息中间件对比: 1、吞吐、可靠性、性能 Kafka安装 Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper Docker安装zookeeper 下载镜像: docker pull zookeeper:3.4.14创建容器 do…

Linux 下最主流的文件系统格式——ext

硬盘分成相同大小的单元,我们称为块(Block)。一块的大小是扇区大小的整数倍,默认是 4K。在格式化的时候,这个值是可以设定的。 一大块硬盘被分成了一个个小的块,用来存放文件的数据部分。这样一来&#xf…

操作系统 day06(进程控制、原语)

进程控制的概念 原语 怎么实现进程控制—用原语实现 如果不能一气呵成,那么会出现操作系统中的某些关键数据结构信息不统一的情况,这会影响操作系统进行别的管理工作,如下图所示: 原语的原子性怎么实现 正常情况下&#xff…

Source insight 创建工程研读库源码

下载库文件解压 创建工程添加路径 添加文件到工程 同步文件 下载库文件解压 创建工程添加路径 添加文件到工程 同步文件 数据库更新 强制重新分析所有文件仅同步当前源文件 添加和删除文件 自动添加新文件从项目中删除丢失的文件

程序员想要网上接单?那这几点注意事项你可要记好了!不看后悔!

相信网上接单对于程序员来说并不陌生,甚至有些程序员还以此为主业,靠网上接单来增加收入,维持生计,但是你真的确定你懂网上接单的套路吗?你知道网上接单的注意事项吗?这期文章就来盘点一下,无论…

跟着森老师学React Hooks(1)——使用Vite构建React项目

Vite是一款构建工具,对ts有很好的支持,最近也是在前端越来越流行。 以往的React项目的初始化方式大多是通过脚手架create-react-app(本质是webpack),其实比起Vite来构建,启动会慢一些。 所以这次跟着B站的一个教程,使用…

JavaWeb Day05 前后端请求响应与分层解耦

目录 一、请求与响应 (一)请求的参数接收 ①数组参数 ②集合参数 ③日期参数 ④json参数 ⑤路径参数 总结 (二)响应 ①简单文本text ②数组 ③列表 ④同一响应数据格式 ⑤总结 二、三层架构与分层解耦 &#xff0…