zoukankan      html  css  js  c++  java
  • 传输层概述

    一、传输层概述

    1、传输层是什么?

    ​ 传输层(英语:Transport Layer)在计算机网络中是互联网协议包与开放系统互连(OSI)网络堆栈中协议的分层结构中的方法的一个概念划分。

    ​ 该层的协议为应用进程提供端到端的通信服务(主要负责向两个主机进程之间的通信提供服务)。它提供面向连接的数据流支持、可靠性、流量控制、多路复用分用等服务。

    2、传输层的作用

    传输层协议能提供应用的多路复用/分用服务、可靠数据传送、带宽保证及延迟保证,流量控制等。

    • ​ 多路复用/分用:

      ​ 复用:当传输层从应用程序接收报文后要封装在传输层的段中再交给网络层发送。 (复用应用层报文)

      ​ 分用:当传输层从网络层接收数据后,必须将数据正确递交给某个应用程序。

    • ​ 流量控制:

      ​ 防止接收端速度太慢造成溢出和丢包的现象

    3、为什么需要传输层?

    • 网络层已经把数据包从一个主机发到另一个主机了,为什么还需要传输层?

      ​ 摘要:找到主机的具体端口; 解决网络层不可靠的问题

      1、这是因为传输层提供了应用进程之间的端-端连接。我们知道一个电脑可能有多个进程同时在使用网络连接,那么网络包达到主机之后,怎么区分自己属于那个进程?这就需要靠传输层的作用了。

      2、网络层提供的是“best effort”尽力而为的服务,网络层提供的无连接服务不可靠(丢包、重复),并且路由器可能崩溃,或者传输线路中断,所以传输层必须足够健壮来解决网络层不可靠,不稳定的问题,比如说传输层可检测到包丢失、损坏、乱序等差错情况,采取相应措施;或者当数据传输过程中网络连接中断,传输层可与远程传输实体建立一新的网络连接,在中断处继续数据的传输。

    4、传输层有哪些协议?

    • TCP

      特点: 分段,编号,流量控制,可靠传输,建立会话

      ​ 分段: 数据包有大小限制,需要分段传输。并且需要编号,接收端根据编号再组合成一个完整的数据包(如果丢失哪个编号的数据,就叫发送端重传) 比如:qq传文件,下载文件等

    • UDP

      特点: 一个数据包就能完成数据通信,不编号,不建立会话,是不可靠传输

      比如: dns域名解析(访问网站时,只需要丢个包给dns服务器,如果没有响应就再丢一个),qq聊天

    二、传输层与应用层的联系

    1、传输层和应用层的关系

    ​ 应用层协议其实就是传输层的两种主要协议加上相应端口来表示是哪一种应用层协议。

    使用http不可靠传输时,使用80端口,http=TCP+80(端口); ==》 应用层协议为http协议,其实就对应传输层的TCP协议 + 80端口
    使用https安全传输时,使用443端口,https=TCP+443(端口);
    ftp=TCP+21;
    SMTP=TCP+25;
    POP3=TCP+110;
    RDP=TCP+3389;
    共享文件夹=TCP+445;
    SQL=TCP+1433;
    DNS=UDP+53 or TCP+53;
    
    
    其实就是传输层协议加上一个使用的端口号就表示一种应用。比如可以这样命名一个应用层协议:KON=TCP+4000 。
    

    2、服务和应用层协议的关系

    ​ 服务(对外提供的服务)运行后在TCP或UDP的某个端口侦听客户端请求。

    ​ 一台计算机上可能运行有多种服务,但是只有一个IP地址。

    Web:80;  http协议 ==>服务使用某某应用层协议(传输层协议+端口)
    ftp:21;
    smtp:25;
    pop3:110;
    

    假设IP地址为:20.1.1.2 ,用端口来定位服务,用IP地址来定位计算机。(开启了web服务,侦听80端口)

    1、服务侦听端口80

    2、网卡开放了80端口出去,所以客户端可以访问到

    3、网卡根据端口转交请求给web服务

    image-20210104103859790

    三、传输层的端口

    1、 TCP 的端口

    • 端口用一个 16 位端口号进行标志。

    • 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。

    2、三类端口

    • 熟知端口:数值一般为0~1023.
    FTP:21;
    TELNET:23;
    SMTP:25;
    DNS:53;
    HTTP:80;
    HTTPS:443;
    RDP:3389;
    
    • 登记端口号:数值为1024~49151。这是给没有熟知端口号的应用程序使用的,使用这个范围的端口号必须在 IANA 登记,以防止重复;
    • 客户端口号:短暂端口号,数值为49152~65535。是留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

    image-20210104103851490

    四、实际操作

    1、如何查看服务侦听的端口

    netstat -an
    

    image-20210104103843024

    ​ 查看具体的进程名(用管理员权限打开cmd窗口)

    netstat -nb 
    

    image-20210104103835035

    2、如何更改服务使用的默认端口

    ​ 修改远程连接端口,比如修改RDP端口(打开注册表修改)

    打开注册表: cmd》regedit
    
    计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
    

    image-20210104103824676

    3、如何设置windows网络安全

    ​ 设置只有特定的服务可以被访问(其余的都被网卡拦截)

    image-20210104103814670

    参考链接:

    https://blog.csdn.net/hanzhen7541/article/details/79071615

    https://www.cnblogs.com/AhuntSun-blog/p/12332054.html


    如果本篇博客有任何错误和建议,欢迎大佬们批评指正

    我是知逆,我们下期见

    Peace

  • 相关阅读:
    Unity异步加载场景loading条
    (转)Unity3D命令行Build
    (转)Unity3d UnityEditor编辑器定制和开发插件
    (转)U3D不同平台载入XML文件的方法——IOS MAC Android
    Unity3D中的欧拉角的理解
    (转)在ios android设备上使用 Protobuf (使用dll方式)
    (转)[原创]在ios android设备上使用 Protobuf (使用源码方式)
    (转)欧拉角与万向节死锁
    (转) unity 在移动平台中,文件操作路径详解
    微信小程序四(设置底部导航)
  • 原文地址:https://www.cnblogs.com/mercurytan/p/14228597.html
Copyright © 2011-2022 走看看