| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 传输层协议和应用层协议及它们之间的关系(端口) -> 正文阅读 |
|
[网络协议]传输层协议和应用层协议及它们之间的关系(端口) |
一、传输层的两个协议 1、TCP协议 ①TCP协议的作用:TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间发生的丢包、乱序,TCP会负责其重传和排序,另外TCP还可实现流量空制和拥塞避免等功能。 ②TCP协议的应用场景: (1)客户端程序和服务端程序需要多次交互才能实现应用程序的功能。比如接收电子邮件使用的POP3和发送电子邮件的SMTP,传输文件的FTP,在传输层使用的是TCP。 (2)应用程序传输的文件需要分段传输,比如浏览器访问网页,网页中图片和HTML文件需要分段后发送给浏览器,或QQ传文件, 在传输层也是选用TCP。 ③TCP最大的特点:TCP需发送3个数据包建立连接(即连接时“三次握手”),释放连接时需发送四个数据包(即释放连接时“四次握手”)。 2、UDP协议 ①UDP协议的应用场景: (1)客户端程序和服务端程序通信,应用程序发送的数据包不需要分段。比如域名解析DNS协议就是用传输层的UDP客户端向DNS服务器发送一个报文解析某个网站的域名,DNS服务器将解析的结果使用一个报文返回给客户端。 (2)实时通信,比如QQ或微信语音聊天,或视频聊天。这类应用,发送端和接收端需要实时交互,也就是不允许较长延迟,即便有几句话因为网络堵塞没听清,也不允许使用TCP等待丢失的报文,等待的时间太长了,就不能愉快的聊天了。 (3)多播或广播通信。比如学校多媒体机房,老师的电脑屏幕需要教室的学生电脑接收屏幕,在老师的电脑安装多媒体教室服务端软件,学生电脑安装多媒体教室客户端软件,老师电脑使用多播地址或广播地址发送报文,学生电脑都能收到。这类应用在传输层也使用UDP。 二、传输层协议与应用层协议之间的关系 1、通常传输层协议加一个端口号来标识一个应用层协议。如下图所示:
■HTTP默认使用TCP的80端口。 ■FTP默认使用TCP的21端口。 ■SMTP默认使用TCP的25端口。 ■POP3默认使用TCP的110端口。 ■HTTPS默认使用TCP的443端口。 ■DNS使用UDP or TCP的53端口。 ■远程桌面协议(RDP)默认使用TCP的3389端口。 ■Telnet使用TCP的23端口。 ■Windows访问共享资源使用TCP的445端口。 ■微软SQL数据库默认使用TCP的1433端口。 ■MySQL数据库默认使用TCP的3306端口。 三、TCP/IP传输层端口 1、端口用一个16位端口号进行标志,允许有65535个不同的端口号。 2、端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在互联网中,不同计算机的相同端口号是没有联系的。 3、由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的IP地址(为了找到对方计算机中的应用进程), 而且还要知道对方的端口号(为了找到对方的计算机)。 4、两大类端口: ■服务器端使用的端口号 (1)熟知端口,数值一般为0 ~ 1023。 (2)登记端口号,数值为1024 ~ 49151,为没有熟知端口号的应用程序使用的。使用这个范围的口端号必须在IANA登记,以防止重V ■客户端使用的端口号 (1)又称为短暂端口号,数值为49152 ~ 65535,留给客户进程选择暂时使用。 (2)当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口。通信结束后,这个端口号可供其他客户进程以后使用。 5、服务器上的端口作用:他们是用来定位服务器上的服务。由此可见,数据包的目标IP地址是用来在网络中定位某个服务器,目标端口用来定位服务器上的服务。如下图所示,端口在数据包传输过程中的作用: ?6、window操作系统的有关端口的命令 ①Netstat -an? ? ? ? ? ? ? ? ? ? ? ? ? ——查看服务器侦听的端口 ②Netstat -a? ? ? ? ? ? ? ? ? ? ? ? ? ? ——查看建立的TCP连接 7、总结::服务器给网络中的计算机提供服务,该服务一运行就会使用TCP或UDP的一些端口侦听客户端的请求,每个服务使用的瑞口必须唯一。如果安装了某服务但客户端不能访问,就要检查该服务是否运行,或者在客户端telnet该服务端口是否成功。 注意:应用层协议使用的端口可以更改。当服务器的服务端口变化了,客户端连接服务器时需要指明使用的端口(默认的就不用指明端口)。更改服务器端口的好处是可以迷惑攻击者黑客,让其没办法判断该端口对应什么服务。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:40:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |