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

news/2024/7/23 8:21:09 标签: 计算机网络, 学习, 笔记

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.niftyadmin.cn/n/5163640.html

相关文章

多语言翻译软件 Mate Translate mac中文版特色功能

Mate Translate for Mac是一款多语言翻译软件,Mate Translate mac可以帮你翻译超过100种语言的单词和短语,使用文本到语音转换,并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版特色功能…

数据结构与算法C语言版学习笔记(3)-线性表的链式结构:链表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言:回顾顺序表的优缺点:为什么要引入链式结构的线性表? 一、什么是链表?二、链表的分类①为什么要设置头节点&…

机器视觉人体跌倒检测系统 - opencv python 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉人体跌倒检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数&…

[MT8766][Android12] 系统设置隐藏休眠时间和锁屏选项

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 最近开发的一款智能盒子,没有屏幕显示;所以,系统默认设置成永不休眠以及默认不锁屏;但是,…

低功耗MCU应用的编程技巧

低功耗微控制器(MCU)在许多电子设备中扮演着重要角色,特别是在依赖电池供电或者需要长时间待机的应用中。为了最大程度地延长电池使用寿命或减少能源消耗,开发人员需要采取针对低功耗的编程技巧。以下是一份关于低功耗MCU应用的编…

C++入门学习(4)引用 (讲解拿指针比较)

上期回顾 在学习完函数重载之后,我们可以使用多个重名函数进行操作,会发现C真的是弥补了好多C语言的不足之处,真的不禁感概一下,时代的进步是需要人去做出改变的,而不是一味的使用啊!所以我们今天继续学一下…

[100天算法】-最短无序连续子数组(day 66)

题目描述 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要…

[MT8766][Android12] 取消WIFI热点超过10分钟没有连接自动关闭设定

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 之前有个需求要设备默认开启WIFI热点,默认开启usb共享网络;而热点在原生的设定里面有个超时机制,如果在限定时间内…