精华内容
下载资源
问答
  • 传输层端口号

    千次阅读 2014-11-02 13:42:21
    一、什么叫端口号 端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如...

    一、什么叫端口号

    端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(使用通用的端口号,其他用户可以方便的使用,这就是服务器为什么要使用通用端口号的原因)(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,这里就不一一列举了。一个软件可以拥有多个端口号,这证明这个软件拥有不止一个网络功能。 

    0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。 

    那么端口号到底有什么作用呢?请大家继续往下看。 

    当一台电脑启动了一个可以让远程其他电脑访问的程序,那么它就要开启至少一个端口号来让外界访问。我们可以把没有开启端口号的电脑看作是一个密封的房间,密封的房间当然不可能接受外界的访问,所以当系统开启了一个可以让外界访问的程序后它自然需要在房间上开一个窗口来接受来自外界的访问,这个窗口就是端口。 
    那么为什么要给端口编号来区分它们呢,既然一个程序开了一个端口,那么不是外部信息都可以通过这个开启的端口来访问了吗?答案是不可以。为什么呢?因为数据是用端口号来通知传输层协议送给哪个软件来处理的,数据是没有智慧的,如果很多的程序共用一个端口来接受数据的话,那么当外界的一个数据包送来后传输层就不知道该送给哪一个软件来处理,这样势必将导致混乱。 

    上一次提到提到在一个经过OSI第四层传输层封装的数据段的第四层报头里包含两个端口号,既源端口号和目的端口号,目的端口号的作用上面已经介绍了,下面让我们了解一下原端口号吧。 
    源端口号一般是由系统自己动态生成的一个从1024-65535的号码,当一台计算机A通过网络访问计算机B时,如果它需要对方返回数据的话,它也会随机创建一个大于1023的端口,告诉B返回数据时把数据送到自己的哪个端口,然后软件开始侦听这个端口,等待数据返回。而B收到数据后会读取数据包的源端口号和目的端口号,然后记录下来,当软件创建了要返回的数据后就把原来数据包中的原端口号作为目的端口号,而把自己的端口号作为原端口号,也就是说把收到的数据包中的原和目的反过来,然后再送回A,A再重复这个过程如此反复直到数据传输完成。当数据全部传输完A就把源端口释放出来,所以同一个软件每次传输数据时不一定是同一个源端口号。
    什么是端口号
    --作者:skygunner
    --发布时间:2005-12-5 21:14:31

    --

    比如学校同一个食堂卖菜的管卖菜,卖饮料的管饮料

    同一台电脑对外来说只有一个IP,但是一台电脑可以提供各种不同的服务,比如WEB服务,FTP服务,SMTP邮键服务。
    端口就是用来区别的服务的,也就是说网络上的服务是用IP+端口这样的形式来区别的。
    一般而言,FTP端口大家都用21,web(http)用80,这些端口也可以自己指定。

    0~1023之间的端口是周知端口,就是说哪个端口分配给哪个服务一般是固定的,网络上大家都这么用,都知道。

    1024~65535之间的端口是动态端口,不固定分配。

    每个网络程序通信都要通过端口的,不管是QQ,BT,迅雷等等。

     

    二、什么是端口

    在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。

        本地操作系统会给那些有需求的进程分配协议端口(protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽象,那么继续跟我来,别走开。

        端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
    不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。

    三 端口的分类

        在Internet上,按照协议类型分类,端口被分为TCP端口和UDP端口两类,虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。 

        从端口的分配来看,端口被分为固定端口和动态端口两大类(一些教程还将极少被用到的高端口划分为第三类:私有端口):
        固定端口(0-1023):
        使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派。由于这些端口紧绑于一些服务,所以我们会经常扫描这些端口来判断对方是否开启了这些服务,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟知的端口;
        动态端口(1024-49151):
        这些端口并不被固定的捆绑于某一服务,操作系统将这些端口动态的分配给各个进程,同一进程两次分配有可能分配到不同的端口。不过一些应用程序并不愿意使用操作系统分配的动态端口,他们有其自己的‘商标性’端口,如oicq客户端的4000端口,木马冰河的7626端口等都是固定而出名的。

    四 端口在入侵中的作用

        有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门,如果不考虑细节的话,这是一个不错的比喻。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。

        入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。

    五 端口的相关工具

    1 netstat -ano 
        的确,这并不是一个工具,但他是查看自己所开放端口的最方便方法,在cmd中输入这个命令就可以了。如下:
    C:/>netstat -an



    C:\Users\LFG>netstat -ano


    活动连接


      协议  本地地址             外部地址                      状态                   PID
      TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
      TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       920
      TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       3252
      TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
      TCP    0.0.0.0:902            0.0.0.0:0              LISTENING       3128
      TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       3128
      TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       600
      TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       984
      TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING       1116
      TCP    0.0.0.0:1029           0.0.0.0:0              LISTENING       672
      TCP    0.0.0.0:1031           0.0.0.0:0              LISTENING       648
      TCP    0.0.0.0:1032           0.0.0.0:0              LISTENING       3616
      TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       2072
      TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1552
      TCP    127.0.0.1:8307         0.0.0.0:0              LISTENING       3252
      TCP    127.0.0.1:13748        0.0.0.0:0              LISTENING       4092
      TCP    127.0.0.1:27018        0.0.0.0:0              LISTENING       2004
      TCP    127.0.0.1:50000        0.0.0.0:0              LISTENING       3156
      TCP    192.168.4.232:139      0.0.0.0:0              LISTENING       4
      TCP    192.168.4.232:1038     180.149.135.176:80     CLOSE_WAIT      2824
      TCP    192.168.4.232:1039     219.142.78.243:80      CLOSE_WAIT      2824
      TCP    192.168.4.232:1135     58.215.106.54:80       CLOSE_WAIT      5156
      TCP    192.168.4.232:1294     110.75.147.112:443     CLOSE_WAIT      2636
      TCP    192.168.4.232:1342     74.125.203.125:5222    ESTABLISHED     2432
      TCP    192.168.4.232:1537     220.181.75.116:80      CLOSE_WAIT      3156
      TCP    192.168.4.232:1945     220.181.76.71:80       CLOSE_WAIT      2940
      TCP    192.168.4.232:4149     220.181.76.36:80       CLOSE_WAIT      3156
      TCP    192.168.4.232:4216     106.120.151.123:80     CLOSE_WAIT      2432
      TCP    192.168.4.232:4237     180.149.156.143:80     CLOSE_WAIT      2888
      TCP    192.168.4.232:4238     106.120.151.123:80     CLOSE_WAIT      4364
      TCP    192.168.4.232:4305     115.231.82.101:80      CLOSE_WAIT      3156
      TCP    192.168.4.232:5159     110.75.131.11:80       CLOSE_WAIT      2104
      TCP    192.168.4.232:5420     220.181.76.28:80       CLOSE_WAIT      3156
      TCP    192.168.4.232:6472     220.181.76.25:80       CLOSE_WAIT      3156
      TCP    192.168.4.232:6473     220.181.76.25:80       CLOSE_WAIT      3156


    2 fport.exe和mport.exe 
        这也是两个命令行下查看本地机器开放端口的小程序,其实与netstat -an这个命令大同小异,只不过它能够显示打开端口的进程,信息更多一些而已,如果你怀疑自己的奇怪端口可能是木马,那就用他们查查吧。

    3 activeport.exe(也称aports.exe)
        还是用来查看本地机器开放端口的东东,除了具有上面两个程序的全部功能外,他还有两个更吸引人之处:图形界面以及可以关闭端口。这对菜鸟来说是个绝对好用的东西,推荐使用喔。

    4 superscan3.0
        它的大名你不会没听说过吧,纯端口扫描类软件中的NO.1,速度快而且可以指定扫描的端口,不多说了,绝对必备工具。

    六 保护好自己的端口

        刚接触网络的朋友一般都对自己的端口很敏感,总怕自己的电脑开放了过多端口,更怕其中就有后门程序的端口,但由于对端口不是很熟悉,所以也没有解决办法,上起网来提心吊胆。其实保护自己的端口并不是那么难,只要做好下面几点就行了:

    1) 查看:经常用命令或软件查看本地所开放的端口,看是否有可疑端口;

    2) 判断:如果开放端口中有你不熟悉的,应该马上查找端口大全或木马常见端口等资料(网上多的很),看看里面对你那个可疑端口的作用描述,或者通过软件查看开启此端口的进程来进行判断;

    3) 关闭:如果真是木马端口或者资料中没有这个端口的描述,那么应该关闭此端口,你可以用防火墙来屏蔽此端口,也可以用本地连接-TCP/IP-高级-选项-TCP/IP筛选,启用筛选机制来筛选端口;

        注意:判断时候要慎重,因为一些动态分配的端口也容易引起你多余的怀疑,这类端口一般比较低,且连续。还有,一些狡猾的后门软件,他们会借用80等一些常见端口来进行通信(穿透了防火墙),令人防不胜防,因此不轻易运行陌生程序才是关键。

    三、端口大全

    在网络技术中,端口的英文是Port,它有有两种解释:
            一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
            二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。

      端口的分类

      逻辑意义上的端口有多种分类标准,下面将介绍两种常见的分类:

      1. 按端口号分布划分

      (1)知名端口(Well-Known Ports)

      知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。

      (2)动态端口(Dynamic Ports)

      动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。

      不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

      2. 按协议类型划分

      按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:

      (1)TCP端口

      TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。

      (2)UDP端口

      UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等

             怎样去查看(找)端口呢?

            提示:本人对Windows系统熟悉点,所以不阐述其它系统了!见谅!

      在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:

      依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态(如图)。


    QUOTE:
    Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.

    C:Documents and SettingsAdministrator>netstat -a -n

    Active Connections

      Proto  Local Address          Foreign Address        State
      TCP    0.0.0.0:21             0.0.0.0:0              LISTENING
      TCP    0.0.0.0:25             0.0.0.0:0              LISTENING
      TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
      TCP    0.0.0.0:110            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:143            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:366            0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1040           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1045           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:1863           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:3000           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:3004           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
      TCP    0.0.0.0:4449           0.0.0.0:0              LISTENING
      TCP    127.0.0.1:3001         0.0.0.0:0              LISTENING
      TCP    127.0.0.1:3002         0.0.0.0:0              LISTENING
      TCP    127.0.0.1:3003         0.0.0.0:0              LISTENING
      TCP    127.0.0.1:3009         127.0.0.1:3306         ESTABLISHED
      TCP    127.0.0.1:3306         127.0.0.1:3009         ESTABLISHED
      TCP    127.0.0.1:9189         0.0.0.0:0              LISTENING
      TCP    127.0.0.1:23883        0.0.0.0:0              LISTENING
      TCP    192.168.1.100:80       59.49.233.34:31456     ESTABLISHED
      TCP    192.168.1.100:80       61.141.167.189:1177    ESTABLISHED
      TCP    192.168.1.100:80       218.56.136.208:5285    ESTABLISHED
      TCP    192.168.1.100:80       221.237.165.17:1213    ESTABLISHED
      TCP    192.168.1.100:80       222.168.11.186:4422    ESTABLISHED
      TCP    192.168.1.100:139      0.0.0.0:0              LISTENING
      TCP    192.168.1.100:1038     222.47.205.27:5050     ESTABLISHED
      TCP    192.168.1.100:4079     219.136.252.79:80      ESTABLISHED
      TCP    192.168.1.100:4604     83.149.119.17:80       CLOSE_WAIT
      TCP    192.168.1.100:4605     83.149.119.17:80       CLOSE_WAIT
      TCP    192.168.1.100:4691     165.21.32.111:80       FIN_WAIT_1
      TCP    192.168.1.100:4694     165.21.32.104:80       FIN_WAIT_1
      UDP    0.0.0.0:161            *:*
      UDP    0.0.0.0:500            *:*
      UDP    0.0.0.0:1028           *:*
      UDP    0.0.0.0:1044           *:*
      UDP    0.0.0.0:3005           *:*
      UDP    0.0.0.0:3010           *:*
      UDP    0.0.0.0:3348           *:*
      UDP    0.0.0.0:3581           *:*
      UDP    0.0.0.0:3956           *:*
      UDP    0.0.0.0:3958           *:*
      UDP    0.0.0.0:4500           *:*
      UDP    0.0.0.0:4714           *:*
      UDP    0.0.0.0:27099          *:*
      UDP    0.0.0.0:29367          *:*
      UDP    0.0.0.0:29368          *:*
      UDP    127.0.0.1:123          *:*
      UDP    127.0.0.1:1037         *:*
      UDP    127.0.0.1:3006         *:*
      UDP    127.0.0.1:3363         *:*
      UDP    127.0.0.1:3551         *:*
      UDP    127.0.0.1:3600         *:*
      UDP    127.0.0.1:4321         *:*
      UDP    192.168.1.100:123      *:*
      UDP    192.168.1.100:137      *:*
      UDP    192.168.1.100:138      *:*
      UDP    192.168.1.100:17985    *:*
      UDP    192.168.1.100:17987    *:*

    C:Documents and SettingsAdministrator>
    这些,就是你的机器开放和正在使用的端口了!
    (上面的具体参数是什么意思,我们后面再讲,这里不讲那么多,免得新手一下接受不了)


    不过这个操作命令我还是要解释一下,因为我自己也经常忘记
    Netstat命令

    命令格式:Netstat -a -e -n -o -s

      -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。

      -e 表示显示以太网发送和接收的字节数、数据包数等。

      -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。

      -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。

      -s 表示按协议显示各种连接的统计信息,包括端口号


    netstat命令详解


    Displays protocol statistics and current TCP/IP network connections.

    NETSTAT [-a] [-e] [-n] [-o] [-s] [-p proto] [-r] [interval]

      nbsp;-a nbsp;           Displays all connections and listening ports.
      -e            Displays Ethernet statistics. This may be combined with the -s
                    option.
      -n            Displays addresses and port numbers in numerical form.
      -o            Displays the owning process ID associated with each connection.
      -p proto      Shows connections for the protocol specified by proto; proto
                    may be any of: TCP, UDP, TCPv6, or UDPv6.  If used with the -s
                    option to display per-protocol statistics, proto may be any of:
                    IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, or UDPv6.
      -r            Displays the routing table.
      -s            Displays per-protocol statistics.  By default, statistics are
                    shown for IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, and UDPv6;
                    the -p option may be used to specify a subset of the default.
      interval      Redisplays selected statistics, pausing interval seconds
                    between each display.  Press CTRL+C to stop redisplaying
                    statistics.  If omitted, netstat will print the current
                    configuration information once.

    基本是这样了。

        好了,基本上,你应该有些端口的概念了!接下来,让我们再来了解,什么叫《端口映射》

              1-为什么要映射:如果你是ADSL、CABLE MODEM或光纤等宽带接入用户,想在网吧或公司内部建一个游戏服务器或WEB服务器,并且能够让互联网上的用户访问你的服务器,那么你就会遇到端口映射问题。 (举个简单例子:你爸上学校找你,来到学校大门却不知道你在哪个教室,这时候值班老师就带你爸爸来到你的教室---->这个过程就如同“端口映射”)

              2-怎样去映射:通常情况下,路由器都有防火墙功能,互联网用户只能访问到你的路由器WAN口(接ADSL线口),而访问不到内部服务器。要想让外面用户访问到服务器,那么你就要在路由器上做一个转发设置,也就是端口映射设置,让用户的请求到了路由器后,并能够到达游戏服务器或WEB服务器。这就是端口映射。
    目前,所有的宽带路由器都有端口映射功能,只是各个路由器厂商所取功能名称不一样,有的叫虚拟服务器,有的叫NAT设置。。。
    端口映射设置很简单,例如要映射一台IP地址为192.168.1.254的WEB服务器,只需把服务器的IP地址192.168.1.254和TCP端口80填入到路由器的端口映射表中就OK了,当然不同的服务有不同的端口,新手切勿乱改端口,避免造成冲突,这样的冲突故障一般情况下你是找不到原因的!

             3-射完后,如何检测:举个例子:WEB服务器应该是80端口映射,这时候,先放一个名为index.htm的静态页面,然后用你的ip或者域名输入到地址栏,回车,看看是否能正常访问!

    展开全文
  • 常见协议以及对应端口 协议 端口 FTP协议:文件传输协议,用户使用FTP客户端通过FTP协议访问FTP服务器上的文件资源 20/21 SSH协议:安全外壳协议,专为远程登录会话和其他网络服务提供的安全性协议。能够...

    常见协议以及对应端口

    协议端口
    FTP协议:文件传输协议,用户使用FTP客户端通过FTP协议访问FTP服务器上的文件资源20/21
    SSH协议:安全外壳协议,专为远程登录会话和其他网络服务提供的安全性协议。能够避免中间人攻击,DNS欺骗,IP欺骗等22
    Telnet协议:Internet远程登陆服务的标准协议和主要方式23
    SMTP协议:简单邮件传输协议,提供可靠且有效的电子邮件传输的协议,是建立在FTP文件传输服务上的一种邮件服务25
    whois协议:查询域名或者IP所有者信息的传输协议63
    DNS:域名解析协议,是将域名和IP地址相互映射的一个分布式数据库53
    DHCP:动态主机配置协议,用来给局域网客户机分配IP地址与子网掩码67/68
    HTTP协议:超文本传输协议,请求-响应协议80
    POP3:邮局协议版本3,于支持使用客户端远程管理在服务器上的电子邮件110
    HTTPS协议: 由 HTTP 加上 TLS/SSL协议构建的可进行加密传输、身份认证的网络协议443
    IMAP协议:交互邮件访问协议,邮件客户端通过它从邮件服务器上获取或下载邮件143
    SNMP:简单网络管理协议161
    远程桌面连接3389
    MSQLL:数据库服务器,用于建立,使用和维护数据库1433
    MYSQL数据库:关系型数据库管理系统3306
    Oracle数据库:关系数据库管理系统1521

    HTTP协议与HTTPS协议的区别

    HTTP是明文传输的,如果黑客在传输过程中进行网络嗅探,中间人攻击来修改客户端与服务端之间的数据或者是在传输数据中恶意插入代码给其植入木马等,极度不安全。

    HTTPS 协议是由 HTTP 加上 TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。通过传输加密和身份认证保证了传输过程的安全性。

    对称加密:

    通过加密算法使用密钥对数据进行加密,同样的也通过与之相对应的解密算法使用相同的密钥对数据进行解密。
    然而,由于用户数量的不确定性,对称加密中的密钥是唯一的,即任何一个用户都可获取当然也包括黑客,可见此加密方法不可靠。

    非对称加密:

    同样是通过密钥对数据进行加密与解密,改变的是存在两种密钥,公钥与私钥,公钥加密则对应私钥解密,私钥加密则对应公钥解密,任何客户端均可获取公钥,而私钥只有服务端拥有。

    过程:客户端首先向服务端索要公钥,获取后就通过公钥将其要传输的数据进行加密,到达服务端后,服务端使用私钥对其进行解密获取数据。由于黑客无法获取私钥于是其无法获得客户端向服务端发送的数据。

    但问题又来了,此时服务端应该向客户端返回数据了,那么使用什么对返回的数据进行加密呢?
    如果使用公钥,由于客户端没有私钥,无法获取,而如果使用私钥,虽然客户端能够使用公钥进行解密,但同样的黑客也拥有公钥同样可以获取数据。
    可见此加密方法只有当客户端向服务端发送数据时是安全的,而当服务端向客户端发送数据时仍存在被黑客侵入的可能。

    对称加密+非对称加密:

    改进:客户端与服务端共同商议将开始客户端向服务端发送的经过公钥加密的数据作为之后传输数据时的“私钥”,这样黑客由于并未参与其中的数据传输则不会得知此“私钥”,于是不能侵入。
    即开始时使用非对称加密,此后为对此加密。

    问题又来了:黑客可以直接截断开始时客户端向服务端索要公钥的过程,即充当一个中间人,对客户端,黑客冒充自己的公钥为服务端的公钥发给客户端;而自己又冒充客户端与服务端进行数据传输;于是黑客能够获取所有客户端以及服务端之间的所有数据并且可以任意更改,即中间人攻击。
    怎么解决呢?你开始截断,那我就堵你开始这个门。

    对称加密+非对称加密+CA证书

    在CA内部,也存在着公钥以及私钥,其通过一定的算法使用去的私钥对服务端本身将要发给客户端的公钥进行加密,生成一个license。之后客户端向服务端索要的不再是服务端本身的公钥而是这个license,之后的过程与上面一样。不同的是,当黑客想充当中间人时,此时的license就是不安全的,客户端也会检测到,给予提醒与警告,从而推测出可能有黑客搞鬼。

    —————————————————————————————

    DHCP 动态主机配置协议

    为网络内主机提供动态地址分配服务。
    当一个DHCP客户机想要一个IP地址时,就会以广播的形式向DHCP服务器发送“我想要一个IP地址”,于是就会有许多DHCP服务器向此客户机提供给可用的IP,DHCP客户机经过选择之后就拿到了一个IP地址,最后再经过DHCP服务器确认即可。

    DNS 域名解析协议

    域名只是为了便于人们记忆而起的一个名字,网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,在报文中,首部的源地址与目的地址均是IP地址,所以计算机在网络上进行通讯时只能识别IP地址,而不能认识域名。于是就需要进行域名解析。

    当访问一个域名时,首先会在自己本机的DNS缓存上查看是否有此域名的IP,如果没有,进一步在系统配置的DNS服务器上查看,如果还没有,再进一步在通过根DNS服务器查找此域名的IP存在于哪台DNS服务器上,确定后,即可获知此域名的IP地址。

    PS:DNS不光是能够将域名解析为IP,其也可以进行域名与域名,域名与URL等的解析。这里不再深究。

    ARP 地址解析协议

    是根据IP地址获取物理地址的一个协议,每个主机都设有一个ARP高速缓存,其中包含一个从IP地址到物理地址的一张映射表,且该表会实时动态更新

    前面我们说过,IP地址是一个抽象地址,只有MAC地址才能够在通信中传输,于是就需要ARP协议来帮助我们获取MAC地址。

    在同一个局域网中,当1号主机想向2号机发送数据时,首先会在自己的ARP缓存中查看2号机的Mac 地址,然后将其写入Mac帧,然后把该Mac帧发往2号机。

    如果1号机与2号机不属于同一局域网,则该表中就没有2号机IP与其Mac 地址的映射,那么就需要通过路由器发送到目的地。

    —————————————————————————————

    TCP 协议 - 三次握手 四次挥手

    以访问百度为例

    三次握手:建立连接
    先由客户端的内核传输控制层产生的一个数据包(syn),均是双方内核在沟通,百度收到syn数据包,会给客户端返回一个syn+ack的确认包;之后客户端的传输控制层再次给百度返回一个ack确认包,即完成了三次握手。;

    三次握手之后,双方就会 开辟资源,进行 数据交互

    四次挥手:释放连接
    客户端向服务端发送fin包,服务端返回fin+ack包(表明知道了消息,但并未同意),同意后返回一个fin包,等待客户端再返回一个ack包给服务端端之后,即完成了四次分手,目的是不要让对方的资源随意释放。

    本质上来讲,就是 确认机制

    TCP 传输控制协议 与 UDP 用户数据报协议

    TCP与UDP是传输层的两种传输协议

    UDP 在传送数据之前不需要先建立连接,发送数据结束后也不需要释放连接,无确认机制,其提供的是无连接的服务不可靠的网络开销小速度快
    TCP 在传送数据之前必须先建立连接,并且数据传送结束后还要释放连接,它提供的是面向连接的服务提供可靠交付;提供全双工通信面向字节流;

    今天的内容就到这里啦!感谢观看

    展开全文
  • 使用IP+port来建立这个关联关系(端口映射). NAPT技术不仅实现了多对一,且相较于NAT技术的一对一,减少了公网IP的映射数量,解决的IP地址不够用的问题。理论上一个公网ip便可以可以替换2^ 16次方65536个私网IP....

    IP协议的概念和功能

    IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:
    一是解决互联网问题,实现大规模、异构网络的互联互通;
    二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。

    IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层,对上可载送传输层各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网等各种技术来传送。
    为了能适应异构网络,IP强调适应性、简洁性和可操作性,并在可靠性做了一定的牺牲。IP不保证分组的交付时限和可靠性,所传送分组有可能出现丢失、重复、延迟或乱序等问题。

    要先理解的基本概念:
    主机: 配有IP地址, 但是不进行路由控制的设备;
    路由器: 即配有IP地址, 又能进行路由控制;
    节点: 主机和路由器的统称;

    IP协议的作用:
    在这里插入图片描述

    IP协议格式

    在这里插入图片描述

    • 4位版本号(version): 指定IP协议的版本, 一个是ipv4版本,一个是ipv6版本;

    • 4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数,4bit表示最大的数字是15, 因此IP头部最大长度是60字节(固定的20字节+40字节的选项)

    • 8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段和1位保留字段(必须置为0).
      – 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个。对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要。

    • 16位总长度(total length): IP数据报整体占多少个字节(ip头部+上层数据),IP包总长度最大为65535个字节。

    • 16位标识(id): 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的(即同一个报文的每个片段都有相同的标识id);

    • 3位标志字段(flags):
      –第一位保留,
      –第二位置为1表示禁止分片, 这时候如果报文长度超过MTU, IP模块就会丢弃报文,
      –第三位表示"更多分片", 如果分片了的话,最后一个分片置为1, 其他是0,类似于一个结束标记;

    • 13位片偏移(framegament offset): 是每个分片相对于原始IP报文开始处的偏移(即该字段指出分段数据在源数据报中的相对位置)。其实就是在标识当前分片在原报文中处在哪个位置,实际偏移的字节数是这个值 * 8 得到的, 因此, 除了最后一个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了).
      –13个比特位最大能表示的数字是2^13 = 8192数值
      片偏移 = 13位数值* 8,最大不超过ip报文的数据长度2^13* 2^3=2 ^16

    • 8位生存时间(Time To Live, TTL): 数据报到达目的地的最大报文跳数(计数器), 一般是64. 每次经过一个路由, TTL-1, 一直减到0还没到达, 那么就丢弃了,这个字段主要是用来防止出现路由循环(实现通信防环)。
      –例子:已知路由器会将数据包以接力(一站一站)的形式逐条传递,很多时候,由于工程师的疏忽,或者因为网络拓扑结构的复杂性,会出现一些Bug环境:由于网络设备之间存在的环路”Loop“,所以数据包一直里面饶起来,而不是发送到该发送过去的服务器上。
      ​ 如果没有TTL,那么这个数据包将会一直存在于链路中,这样不仅占用网络带宽,并且浪费设备的处理器资源,严重的时候将会拖垮其他人的正常通信。
      ​ 所以,当IP数据包加入TTL值之后,即便网络拓扑存在环路设计,当数据包被转发到TTL为0的时候,网络设备也可以直接丢弃,以此解决环路带来的危害。

    • 8位协议: 标识IP协议上层协议。当上层协议为ICMP时,协议号为1,TCP协议号为6,UDP的协议号为17。

    • 16位头部校验和: 使用CRC进行校验, 用于检验IP头部(不同于tcp/udp还要检测数据)是否完整或被修改,若校验失败则丢弃数据包。

    • 32位源地址: 标识发送者IP地址,占用32bit

    • 32位目标地址:标识接收者IP地址,占用32bit

    IP地址管理

    IP地址划分

    IP地址分为两个部分:网络号主机号
    网络号: 保证相互连接的两个网段具有不同的标识;
    主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;

    • 不同的子网其实就是把网络号相同的主机放到一起;
    • 如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但是主机号必须不能和子网中的其他主机重复;

    通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同。

    传统五类划分
    过去曾经提出一种划分网络号和主机号的方案, 把所有IP 地址分为五类:
    在这里插入图片描述

    • A类:
      高1位固定为0,后面7位为网络号,24位为主机号
      00000000 00000000 00000000 00000000 =》 0.0.0.0
      01111111 11111111 11111111 11111111 =》 127.255.255.255
      网络号的范围: 0~127 ;意味着总共划分出来128个子网
      A类表示的ip地址范围0.0.0.0 ~ 127.255.255.255
      每一个A类的子网,能够拥有品大2^ 24次方个ip地址

    • B类
      高两位固定为10,后面14位表示网络号,16位表示主机号
      网络号范围: 10 000000 00000000 ~ 1011111 11111111 =》128.0 ~ 191.255
      主机号范围: 0~ 2^16
      ip地址范围128.0.0.0 ~ 191.255.255.255

    • C类
      高三位固定为110,后面21位表示网络号, 8位表示主机号
      网络号范围11000000 00000000 00000000 ~ 11011111 11111111 111111111
      192.0.0 ~ 223.255.255
      主机号范围: 0~2^8,也就是意味着每一个C类 子网当中有256个ip地址
      ip地址范围: 192.0.0.0 ~ 223.255.255.255

    • D类
      高4位固定,28位多播组号
      ip地址范围: 224.0.0.0到239.255.255.255

    • E类
      高5位固定, 27位留用
      ip地址范围: 240.0.0.0到247.255.255.255

    但是随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址;
    例如, 申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机. A类地址的子网内的主机数更多.然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了(就算是申请最小的C类地址,也有256个主机,但是对于一些小工作室或者公司来说,也可能有多余的浪费)。

    新的划分方案CIDR(Classless Interdomain Routing)
    针对这种情况提出了新的划分方案, 称为CIDR:

    • 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;
    • 子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾(或者说由一段连续的1组成);
    • 将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;
    • 注意网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;

    子网掩码的意义:
    1.最大主机号=子网掩码取反
    2.网络号= 子网掩码& IP地址
    举例 :

    IP地址: 172.16.99.129
    netmask : 255.255.255.0    
    两者按位与&操作
    得到网络号: 172.16.99.0 则最大主机号 : 255 (0~255 )
    IP地址范围为:172.16.99.0~172.16.99.255 
    

    可见,IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围;
    IP地址和子网掩码还有一种更简洁的表示方法,例如 172.16.99.129/24,表示IP地址为 172.16.99.129, 子网掩码的高24位是1,也就是255.255.255.0。

    这样划分便解决了刚才的分配问题,即提高了利用率, 减少了浪费

    特殊的IP地址

    • 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网;
    • 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包;
    • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1(自己在本机做通信实验时,就是在本机的协议栈上封装和分用信息的)
    • 0.0.0.0用于在服务器程序中,表示服务器机器上所有网卡的ip地址
    • 255.255.255.255 : UDP的广播地址,应用于DHCP动态主机分配协议: 谁上网给谁分配IP

    IP地址的数量限制

    我们知道, IP地址(IPv4)是一个4字节32位的正整数, 那么一共只有 2的32次方 个IP地址, 大概是42亿左右. 而TCP/IP协议规定, 每个主机都需要有一个IP地址.
    这意味着, 一共只有43亿台主机能接入网络么?
    实际上, 由于一些特殊的IP地址的存在, 数量远不足43亿; 另外IP地址并非是按照主机台数来配置的, 而是每一个网卡都需要配置一个或多个IP地址.
    而CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率, 减少了浪费, 但是IP地址的绝对上限并没有增加), 仍然不是很够用. 这时候有三种方式来解决:

    • 动态分配IP地址: 只给接入网络的设备分配IP地址. 因此同一个MAC地址的设备, 每次接入互联网中, 得到的IP地址不一定是相同的;
    • NAT技术;
    • IPv6: IPv6并不是IPv4的简单升级版. 这是互不相干的两个协议, 彼此并不兼容; IPv6用16字节128位来表示一个IP地址; 但是目前IPv6还没有普及;

    私有IP地址和公网IP地址

    如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上 使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址。
    在这里插入图片描述
    三个私网网段

    • 10.* . * . * , 前8位是网络号,共16,777,216个地址
      IP地址范围: 10.0.0.0 ~ 10.255.255.255

    • 172.16.* .* ~ 172.31. * .* , 前12位是网络号,共1,048,576个地址
      IP地址范围: 172.16.0.0 ~ 172.31.255.255

    • 192.168.* . * ,前16位是网络号,共65,536个地址
      IP地址范围:192.168.0.0 ~ 192.168.255.255

    包含在这些范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP);

    但是可能有疑惑?
    本身ip地址都不够用了,还要划分出三个段的不让访问互联网的IP地址。
    当然,这样规定是有别的本意:
    1.让这三个段的ip地址可以进行复用;不管是个人还是企业还是国家,都可以不用申请就直接使用;
    2.这些ip可以组建子网,而我们将这种子网称之为私网。对应的互联网称之为公网;
    3.这个私网当中的ip之间,不影响网络通信,换句话说,私网的当中的机器之间可以互相通信,但是不能访问互联网;
    4.要是想要访问互联网就要由路由器的NAT技术转换成可以上网的公网IP才行.

    NAT(Network Address Translation网络地址转换技术)

    NAT技术背景

    • 一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP).路由器LAN口连接的主机, 都从属于当前这个路由器的子网中;
    • 不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间(即不同的的两个子网之间)的IP地址就可以重复了;
    • 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级(套娃),而最外层的运营商路由器, WAN口IP就是一个公网IP了;
    • 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP,便可以访问互联网了。 这种技术称为NAT(Network Address Translation,网络地址转换).
    • 如果希望我们自己实现的服务器程序, 能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服务器上. 这样的服务器可以在阿里云/腾讯云上进行购买.

    NAT技术
    NAT技术是当前解决IP地址不够用的主要手段, 是路由器的一个重要功能;
    NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法:很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP;全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的;
    在这里插入图片描述
    具体的例子:
    在这里插入图片描述
    注意:

    1. 在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
      当 172.16.99.129第一次向 14.215.177.38发送数据时就会生成表中的映射关系;
    2. 替换的IP地址是路由动态分配的(DHCP协议)

    NAT技术的特点:
    1.网络被划分为私网和公网, NAT网关设置到私网到公网的路由出口位置,双方的流量都是需要经过NAT网关的;
    2.网络访问只能从私网一端发起,公网是无法访问到私网的主机的(没有映射表的)
    3.NAT网关对于请求而言,是替换源IP地址,对于应答而言,是替换目的IP地址
    4.NAT网关对于双方都是透明的,双方在网络传输过程当中是无感知的;
    5.NAT网关为了实现双向翻译功能,需要在NAT服务器当中维护一张映射表,把替换的信息一一记录下来 ;

    NAPT技术(NAT重载)

    如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?
    这时候就用NAPT解决这个问题了. 使用IP+port来建立这个关联关系(端口映射).

    NAPT技术不仅实现了多对一,且相较于NAT技术的一对一,减少了公网IP的映射数量,解决的IP地址不够用的问题。理论上一个公网ip便可以可以替换2^ 16次方65536个私网IP.

    在这里插入图片描述
    这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接(第一次发送数据)时, 就会生成这个表项; 在断开连接后, 就会删除这个表项。

    总结:
    1.私网和NAT可以是多对一的关系,通过端口来进行标识
    2、NAPT服务器当中的公网ip,最大可以映射2^16 (端口)
    3. NAPT也是一个动态NAT,可以维护多个公网ip
    4.NAPT很好的解决了ip地址不够用的问题; 即NAT协议和DHCP协议成功挽救了快要枯竭的ipv4版本的ip地址

    NAT技术的缺陷
    由于NAT依赖这个转换表, 所以有诸多限制:

    • 无法从NAT外部向内部服务器建立连接;
    • 转换表的生成和销毁都需要额外开销;
    • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

    NAT和代理服务器(vpn)

    • 路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程.
    • 代理服务器看起来和NAT设备有一点像,客户端向代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务器; 服务器返回结果后, 代理服务器又把结果回传给客户端.

    那么NAT和代理服务器的区别有哪些呢?

    • 从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器, 也是使用代理服务器.
    • 从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层.
    • 从使用范围上讲, NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网.
    • 从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上.

    代理服务器是一种应用比较广的技术.

    • 翻墙: 广域网中的代理(常常说的梯子).
    • 负载均衡: 局域网中的代理.

    路由选择

    互联网是由许多个网络连接所形成的大型网络。如果要在互联网中传送IP信息包,除了确保网络上每个设备都有一个唯一的IP地址之外,网络之间还必须有传送的机制,才能将IP信息包通过一个个的网络传送到目的地。
    首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网(局域网技术)会将该数据包转发给本子网的网关进行路由。网关(路由器)是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。此种传送机制称为IP路由(路由选择)。

    这里是根据网络当中的数据存在的五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)中的目的IP地址来进行选择的,当IP数据包, 到达路由器时, 路由器会先查看目的IP;路由器决定这个数据包是能直接发送给目标主机, 还是需要发送给下一个路由器;
    反复套娃, 直到到达目标IP地址;

    在这里插入图片描述
    那么如何判定当前这个数据包该发送到哪里呢? 这个就依靠每个节点内部维护一个路由表;

    • 路由表可以使用route命令查看
      在这里插入图片描述
      – 这台主机有两个网络接口,一个网络接口连到172.16.99.0/24网络,另一个网络接口连到192.168.122.0/24网络;
      – 路由表的Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是发送接口,Flags中的U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址(),没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发;
    • 如果目的IP命中了路由表, 就直接转发即可;
    • 路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

    举两个例子来了解路由选择
    转发过程例1:
    如果要发送的数据包的目的地址是192.16.122.3跟第一行的子网掩码做与运算得到192.16.122.0,与第一行的目的网络地址不符,接着再跟第二行的子网掩码做与运算得 到192.16.122.0,正是第二行的目的网络地址,因此从对应的eth1接口发送出去;由于192.16.122.0/24正 是与eth1 接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发。

    转发过程例2:
    如果要发送的数据包的目的地址是202.10.1.2依次和路由表前几项进行对比, 发现都不匹配;就按缺省路由条目(default), 从eth0接口发出去, 发往gateway路由器;由gateway路由器根据它的路由表决定下一跳地址,要是它的路由表里也没有,那就继续发往缺省路由,如此往复,在每一个路由设备上进行比对,之后进行传输,直到TTL耗尽被丢弃,或者递达到目标主机;

    所以

    网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址(ARP协议)、对于不同子网的数据包进行路由。
    且注意:
    1.网络层的ip协议不负责数据有序或者可靠到达对端(这些都是依靠传输层)!
    2.网络层的ip协议只负责数据的源端和目的端(五元组中的原地址和目的地址)!

    展开全文
  • 七层协议四层协议

    千次阅读 2018-09-10 18:38:59
    层协议: 数据在传送过程中从发送端到传输端也就是从应用到应用,发送端和接受端的所做的是相反的动作,每一在面对不同方向的数据时会有不同的解决方式,在看每一的解释的时候请配合第二副图传输方向去看...

    七层协议:

    数据在传送过程中从发送端到传输端也就是从应用层到应用层,发送端和接受端的所做的是相反的动作,每一层在面对不同方向的数据时会有不同的解决方式,在看每一层的解释的时候请配合第二副图传输方向去看。

    • 应用层:面向用户,包含各种应用协议(HTTP、FTP、SMTP等)。
    • 表示层:将用户传来的信息(应用层的命令或数据)进行翻译,如编码、数据格式转换、加密解密等。
    • 会话层:在得到需要连接对象的信息之后(mac、ip、端口号)负责对两个不同实体的表示层之间建立连接。
    • 传输层:建立端口到端口间的通信。

    第四层就像承上启下的状态,下三层在传输过程中会对原有的信息进行加工(每过一层会在包头加一层部首),相反上层接收的实体收到的时候会再一次对所经过的每一层进行解套,当再一次经过传输层的时候信息会变为最原始为加工的状态,即向用户透明的传送报文

    • 网络层:解决不同子网络之间的通信,在这里引入了ip地址,通过路由选择算法分配最适当的路径。来自上层的数据在这里包头被加入了ip,来自数据链路层的数据在这里被转换为数据包,通过路径选择、分段组合、顺序、进/出路由等控制,实现网络设备间的传输。
    • 数据链路层:建立和管理节点间的链路。在这里数据以流的形式被传输,接收物理层的比特流并封装成帧(0/1)或者将上层数据变为流的形式发送物理层,还负责接收端发回的确认信息,提供可靠的传输。
    • 物理层:实现相邻计算机节点之间的比特流透明传送,尽可能的屏蔽掉传输介质和物理设备之间的差异。

    四层协议:

    TCP/IP协议,没有表示层和会话层,并且将数据链路层和物理层合为网络访问层。

    应用层包含所有的高层协议,包括:虚拟终端协议(TELNET)、文件传输协议(FTP)、电子邮件传输协议(SMTP)、域名服务(DNS)、网上新闻传输协议(NNTP)和超文本传送协议(HTTP)等。TELNET允许一台机器上的用户登录到远程机器上,并进行工作;FTP提供有效地将文件从一台机器上移到另一台机器上的方法;SMTP用于电子邮件的收发;DNS用于把主机名映射到网络地址;NNTP用于新闻的发布、检索和获取;HTTP用于在WWW上获取主页。

    传输层:源端和目的端机器上的对等实体可以进行会话。这一层定义了两个端到端的协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP是面向无连接的不可靠传输的协议,主要用于不需要TCP的排序和流量控制等功能的应用程序。

    展开全文
  • 常用tcp和udp重要协议端口号

    千次阅读 2018-01-15 23:20:19
    最进协议端口号老是忘记,这里给自己写一份笔记,为自己今后看起来比较方便。 TCP 协议名称 端口号 套接字 作用 Telnet 专司终端模拟 23 Tcp 23 它为用户提供了在本地计算机上完成远程主机工作的能力 SMTP...
  • TCP/IP四层模型各层主要协议详述

    万次阅读 多人点赞 2019-08-02 00:46:00
    1、一张表理清 OSI七层和TCP/IP四层的关系 2、TCP/IP模型 (1)物理层 物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性,确保原始的数据可在各种物理...
  • TCP,UDP相关协议端口号

    千次阅读 2018-07-18 21:22:16
    表格内容来自:http://blog.51cto.com/13445059/2061325 ... TCP 协议名称 端口号 套接字 作用 Telnet 专司终端模拟 23 Tcp 23 为用户提供了在本地计算机上完成远程主机工作的能力 ...
  • TCP和UDP各自的协议端口号

    千次阅读 2018-12-28 13:03:15
    端口号 套接字 作用 Telnet 专司终端模拟 23 Tcp 23 为用户提供了在本地计算机上完成远程主机工作的能力 SMTP 简单邮件传输协议 25 Tcp 25 帮助每台计算机在发送或中转信件时...
  • 网上对TCPIP协议、以及端口号、套接字以及绑定的概念已经写的很多了。但不是所有的都适合新手,最近下进行FreeRTOS+TCP开发时,发现官方的解释特别通俗易懂,因此对我对简介部分进行了翻译,方便懒得看英文的人也能...
  • 端口号 套接字 作用 Telnet 专司终端模拟 23 Tcp 23 它为用户提供了在本地计算机上完成远程主机工作的能力 SMTP 简单邮件传输协议 25 Tcp 25 它帮助每台计算机在发送或中转信件时找到下一个目的地 HTTP 超...
  • 端口号 套接字 作用 Telnet 专司终端模拟 23 Tcp 23 它为用户提供了在本地计算机上完成远程主机工作的能力 SMTP 简单邮件传输协议 25 Tcp 25 它帮助每台计算机在发送或中转...
  • TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    千次阅读 多人点赞 2018-04-12 21:53:09
    TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(英语:TCP/IP ...
  • 常见端口号和解释

    万次阅读 2016-12-25 20:05:16
    端口号码 / 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat ...
  • 端口号

    千次阅读 2010-05-07 13:59:00
    TIP/IP 端口号大全1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd ...
  • iptables nat及端口映射

    千次阅读 2018-02-27 11:32:42
    iptables 应用初探(nat+三访问控制)iptables 是一个Linux 下优秀的nat +防火墙工具,我使用该工具以较低配置的传统pc 配置了一个灵活强劲的防火墙+nat系统, 小有心得,看了网上也有很多这方面的文章,但是似乎...
  • 文章目录一、实验环境二、实验拓扑三、实验需求、实验步骤PC1配置PC2配置PC3配置PC4配置Server配置1,设置地址2,配置Httpd服务LSW1三交换机配置R1配置静态NAT动态NAT端口多路复用NAT端口映射路由表R2配置Cloud1...
  • OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在1978(maybe 1979)年为...
  •  ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后...
  • 问题开始于 在网上看到DNS会使用UDP和TCP的43号端口,一时没理解TCP和UDP两种协议端口的关系。 http://bbs.51cto.com/thread-1010537-1.html DNS的端口有TCP,UDP 53端口,那么什么时候用TCP,什么时候用UDP的端口...
  • 四层和七层负载均衡的区别

    千次阅读 2015-06-22 15:00:09
    (一) 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡...
  • 端口号说明

    千次阅读 2013-04-10 15:55:20
    1 tcpmux TCP 端口服务多路复用  5 rje 远程作业入口  7 echo Echo 服务  9 discard 用于连接测试的空服务  11 systat 用于列举连接了...18 msp 消息发送协议  19 chargen 字符生成服务;发送无止境的字符流
  • ADSL路由猫端口映射集结

    千次阅读 2006-11-15 16:39:00
    共享的要在主机上做端口映射,开放端口是你的BT客户端监听的端口 阿尔卡特 SpeedTouch HomePlus511 中设置端口映射 进入ADSL的Web设置页面, 在左边的菜单中点“Advanced”/"NAT" 进入NAT的设置界面后,点右边的New...
  • 端口映射的几种实现方法(转)

    千次阅读 2019-01-29 13:33:06
    端口映射的几种实现方法(转) 采用端口映射(Port Mapping)的方法,可以实现从Internet到局域网内部机器的特定端口服务的访问。笔者总结了在教学与组网实践中采用的几种端口映射方法,在此与大家交流探讨。 利用II...
  • TCP/IP 端口号大全

    千次阅读 2011-12-01 19:59:40
    运输层端口分为大两类 (1)服务器端口号(又分为熟知端口号活系统端口号数值为0-1023,和登记端口号熟知为1024-49151) (2)客服端使用端口号数值为49152-65535 1 tcpmux TCP 端口服务多路复用 5 rje
  • 传输层协议、应用层协议

    千次阅读 2018-05-10 00:17:10
    传输层协议、应用层协议一、传输层协议1、传输概述 (1)传输的作用 IP提供点到点的连接 传输提供端到端的连接 (2)传输协议 TCP(Transmission Control Protocol)传输控制协议 可靠的、面向...
  • 网络:常见的端口号及分类

    万次阅读 多人点赞 2017-05-26 18:41:32
    一、端口号概念 在网络技术中,端口(Port)包括逻辑端口...逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。
  • TCP/IP四层协议 TCP与UDP的区别

    千次阅读 2016-08-03 18:23:52
    转载地址:http://www.cnblogs.com/BlueTzar/articles/811160.html ... ...TCP/IP四层模型 TCP/IP参考模型    ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由
  • 常见网络端口 和 常见网络协议

    千次阅读 2014-05-07 22:50:22
    常见网络端口 端口:0  服务:Reserved  说明:通常用于分析操作系统。 端口:1  服务:tcpmux  说明:这显示有人在寻找SGI Irix机器。 端口:7  服务:Echo  说明:能看到许多人搜索...
  • 网络端口号大全

    万次阅读 2012-06-06 14:26:07
    1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的...18 msp 消息发送协议 19 chargen 字符生成服务;发送无止境的字符流 20 ftp

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,403
精华内容 14,961
关键字:

四层端口号协议映射