0%

TCP/IP--简介

网络协议栈架构

TCP/IP是一个协议族的统称,包含了IP协议、ICMP协议、TCP协议以及HTTP、ftp、pop3等,网络协议栈可以分为七层,即著名的OSI七层模型。而TCP/IP将这七层又分为四层,分别是:

  • 应用层:应用程序据此访问网络
  • 传输层:TCP、UDP协议
  • 网络层:IP、ARP、RARP、ICMP等
  • 网络接口层:TCP/IP的基层,负责数据帧的发送和接收

    IP地址

    网络上每一个节点都必须有一个独立的IP地址,通常使用的 IP 地址是一个 32bit的数字,被.分成 4 组,例如,255.255.255.255就是一个IP地址。有了IP地址,用户的计算机就可以发现并连接互联网中的另外一台计算机。在 Linux 系统中,可以用 ifconfig -a命令查看自己的 IP 地址。

    域名

    域名与计算机的 IP 地址相对应,并把这种对应关系存储在域名服务系统 DNS(Domain Name System)中,这样用户只需记住域名就可以与指定的计算机进行通信了。

    MAC地址

    MAC(Media Access Control)地址,或称为物理地址、硬件地址,用来定义互联网中设备的位置。
    在 TCP/IP 层次模型中,网络层管理 IP 地址,链路层则负责 MAC 地址。因此每个网络位置会有一个专属于它的 IP 地址,而每个主机会有一个专属于它 MAC 地址。

    端口号

    IP 地址是用来发现和查找网络中的地址的,但是不同程序如何互相通信呢,这就需要端口号来识别了。如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是端口采用16比特的端口号标识,一个IP地址的端口可以有65536个。服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个TCP/IP实现来说,SMTP(简单邮件传输协议)服务器的TCP端口号都是25,FTP(文件传输协议)服务器的TCP端口号都是21,TFTP(简单文件传输协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都用众所周知的1-1023之间的端口号。这些人们所熟知的端口号由Internet 端口号分配机构(Internet Assigned Numbers Authority,IANA)来管理。

常用协议对应端口号:

  • SSH 22
  • FTP 20 和 21
  • Telnet 23
  • SMTP 25
  • TFTP 69
  • HTTP 80
  • SNMP 161
  • Ping 使用ICMP,无具体端口号

封装和分用

当应用程序发送数据的时候,数据在协议层次当中从顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,这样的信息称之为协议数据单元(Protocol Data Unit,缩写为PDU),在分层协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。

分层

网络协议栈结构可分为OSI七层模型和TCP/IP四层模型,其中,TCP/IP的四层模型分别是:

  • 应用层–应用程序用以访问网络的协议,如FTP,HTTP,DNS,TELNET
  • 传输层–TCP协议和UDP协议
  • 网络层–IP协议,ARP,RARP协议,ICMP协议等
  • 网络接口层–是TCP/IP协议的基层,负责数据帧的发送和接收