传输层概述以及传输层端口
2017-06-14 22:29
232 查看
一、运输层协议概述
两个主机进行通信实际上就是两个主机中的应用进程互相通信,应用进程之间的通信又称为端到端的通信。“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
二、端口号
1.计算机进程通信遇到的问题
运行在计算机中的进程是用进程标识符来标志的。但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符,因此发送方非常可能无法识别其他机器上的进程。为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP体系的应用进程进行标志。而且由于进程的创建和撤销都是动态的,有时我们会改换接收报文的进程,但并不需要通知所有发送方。还有在实际应用中我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。
2.解决办法:端口的提出
解决这个问题的方法就是在运输层使用协议端口号(protocolport number),或通常简称为端口(port),端口用一个16位端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP来完成。
3.端口的分类
端口号的范围是从1~65535,一般分为3类端口:熟知端口号,登记端口号,客户端口号或短暂端口号。
熟知端口号,数值一般为0~1023,每个端口号应用于特定熟知的应用协议。
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA(The Internet Assigned NumbersAuthority,互联网数字分配机构)登记,以防止重复。
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
一些常见的端口号及其用途如下:
TCP21端口:FTP文件传输服务
TCP23端口:TELNET终端仿真服务
TCP25端口:SMTP简单邮件传输服务
UDP53端口:DNS域名解析服务
TCP80端口:HTTP超文本传输服务
TCP110端口:POP3“邮局协议版本3”使用的端口
TCP443端口:HTTPS加密的超文本传输服务
TCP1521端口:Oracle数据库服务
TCP1863端口:MSNMessenger的文件传输功能所使用的端口
TCP3389端口:MicrosoftRDP 微软远程桌面使用的端
TCP5631端口:SymantecpcAnywhere 远程控制数据传输时使用的端口
UDP5632端口:SymantecpcAnywhere 主控端扫描被控端时使用的端口
TCP5000端口:MSSQL Server使用的端口
UDP8000端口:腾讯QQ
三、Socket
TCP 把连接作为最基本的抽象。每一条TCP连接有两个端点。TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。端口号拼接到(contatenatedwith) IP 地址即构成了套接字。
套接字(socket) = (IP地址:端口号)
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
TCP 连接 = {socket1, socket2} = {(IP1: port1), (IP2: port2)}
注:同一个名词socket有多种不同的意思:
应用编程接口API称为socketAPI, 简称为socket。
socketAPI 中使用的一个函数名也叫作socket。
调用socket函数的端点称为socket。
调用socket函数时其返回值称为socket描述符,可简称为socket。
在操作系统内核中连网协议的Berkeley实现,称为socket实现。
两个主机进行通信实际上就是两个主机中的应用进程互相通信,应用进程之间的通信又称为端到端的通信。“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
二、端口号
1.计算机进程通信遇到的问题
运行在计算机中的进程是用进程标识符来标志的。但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符,因此发送方非常可能无法识别其他机器上的进程。为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP体系的应用进程进行标志。而且由于进程的创建和撤销都是动态的,有时我们会改换接收报文的进程,但并不需要通知所有发送方。还有在实际应用中我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。
2.解决办法:端口的提出
解决这个问题的方法就是在运输层使用协议端口号(protocolport number),或通常简称为端口(port),端口用一个16位端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP来完成。
3.端口的分类
端口号的范围是从1~65535,一般分为3类端口:熟知端口号,登记端口号,客户端口号或短暂端口号。
熟知端口号,数值一般为0~1023,每个端口号应用于特定熟知的应用协议。
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在IANA(The Internet Assigned NumbersAuthority,互联网数字分配机构)登记,以防止重复。
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
一些常见的端口号及其用途如下:
TCP21端口:FTP文件传输服务
TCP23端口:TELNET终端仿真服务
TCP25端口:SMTP简单邮件传输服务
UDP53端口:DNS域名解析服务
TCP80端口:HTTP超文本传输服务
TCP110端口:POP3“邮局协议版本3”使用的端口
TCP443端口:HTTPS加密的超文本传输服务
TCP1521端口:Oracle数据库服务
TCP1863端口:MSNMessenger的文件传输功能所使用的端口
TCP3389端口:MicrosoftRDP 微软远程桌面使用的端
TCP5631端口:SymantecpcAnywhere 远程控制数据传输时使用的端口
UDP5632端口:SymantecpcAnywhere 主控端扫描被控端时使用的端口
TCP5000端口:MSSQL Server使用的端口
UDP8000端口:腾讯QQ
三、Socket
TCP 把连接作为最基本的抽象。每一条TCP连接有两个端点。TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。TCP连接的端点叫做套接字(socket)或插口。端口号拼接到(contatenatedwith) IP 地址即构成了套接字。
套接字(socket) = (IP地址:端口号)
每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。即:
TCP 连接 = {socket1, socket2} = {(IP1: port1), (IP2: port2)}
注:同一个名词socket有多种不同的意思:
应用编程接口API称为socketAPI, 简称为socket。
socketAPI 中使用的一个函数名也叫作socket。
调用socket函数的端点称为socket。
调用socket函数时其返回值称为socket描述符,可简称为socket。
在操作系统内核中连网协议的Berkeley实现,称为socket实现。
相关文章推荐
- 传输层概述以及传输层端口
- 黑马程序员_温习 网络编辑一 (个人笔记)摘要(网络概述---网络参考模型---网络传输要素---IP地址---端口----传输协议(UDP -- TCP)---Socket机制 )
- Android的Usb设备的监听(Dev)外设端口的判定以及耳机的插拔
- Json概述以及python对json的相关操作
- AppServ2.5.9本机配置虚拟主机以及端口设置
- Oracle Spatial 产品概要以及使用概述
- json和jsonp概述以及解决跨域问题
- 查看端口被占用的情况以及如何解除端口占用
- linux c 实现 获取系统内存,某进程cpu利用率,以及某端口的网络状况
- C++多线程编程以及epoll处理socket通信时多端口问题
- 【Tomcat】Tomcat的安装配置,如何在NetBeans上创建tomcat服务器,以及关于tomcat端口被占用的解决办法
- [数据存储]概述以及文件FileManager
- 基于RTMP协议的h.264码流传输以及各种视音频封装格式分析
- 让Vue-cli生成vue+webpack的项目为vue1.0版本以及端口占用问题解决办法
- 数据包传输过程中MAC地址以及IP地址的变化情况
- Tomcat的URL中文乱码解决以及传输优化
- 深入Protobuf源码-概述、使用以及代码生成实现
- 关于Tomcat搭建服务器需要80端口问题的解决方案以及80端口被NT KERNEL & SYSTEM ,pid4占用解决方法
- 无线传输距离和发射功率以及频率
- Json概述以及python对json的相关操作