Skip to content

TCP/IP 基础

由来

20世纪90年代,美国国国防局以军事为目的研究的一种技术 (阿帕网ARPANET),主要优势是:在两个节点通信过程中,几个节点或线路被破坏时,可以通过改变线路的方式,从而让这两个节点之间继续进行通信。

ARPANET 是世界上第一个运营的分组交换网络,是全球互联网的鼻祖。

TCP/IP 相比其他协议有两点优势:开放性实用性,即标准能否被实际应用。

什么是 TCP/IP

TCP/IP 提供了点对点链接的机制,将数据如何封装、寻址、传输、路由以及在目的地如何接收,都加以标准化,它将通信过程简化,根据功能不同分为:应用层、传输层、网络层、链路层。被视为简化的 OSI 模型。

OSI(Open System Interconnection 开放式系统互联)模型把网络通信分为七层:分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

我们通常所说的 TCP/IP 并不仅仅是指 TCP 和 IP 这两种协议。其实是指 TCP/IP 协议族 (TCP/IP Protocols)。

TCP/IP 协议族

主要的 TCP/IP 协议族

  • 应用层协议
    • HTTP 超文本传输协议 是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是全球资讯网的数据通信的基础。
    • DNS 网域名称系统 是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
    • SMTP 简单邮件传输协议 是一个在网际网络上传输电子邮件的标准。
    • FTP 文件传输协议 (File Transfer Protocol) 是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。
    • SSH 加密网络传输协议 (Secure Shell) ,可在不安全的网络中为网络服务提供安全的传输环境。SSH 通过在网络中建立安全隧道来实现 SSH 客户端与服务器之间的连接。最常见的用途是远程登录系统。
    • Telnet 使用于网际网路及区域网中,使用虚拟终端机的形式,提供双向、以文字字串为主的命令列介面互动功能。是网际网路远端登录服务的标准协议和主要方式,常用于服器的远端控制,可供使用者在本地主机执行远端主机上的工作。
  • 传输层协议
    • TCP 传输控制协议 (Transmission Control Protocol) 是一种面向连接的、可靠的、基于字节流的传输层通信协议.
    • UDP 用户数据报协议 (User Datagram Protocol) 是一个简单的面向数据报的通信协议。
    • TLS/SSL
  • 网络层协议
    • IP 网际协议、互联网协议 (Internet Protocol) 是用于分组交换数据网络的一种协议。
    • ICMP 互联网控制消息协议 (Internet Control Message Protocol) 它用于网际协议(IP)中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
  • 网络链接层协议
    • 以太网
    • Wi-Fi
    • MPLS

应用层

应用层是网络相关的程序为了通过网络与其他程序通信使用的层。

主要作用:负责所有和应用程序协同的工作,利用基础网络交换应用程序专用数据的协议。

处理过程:数据从网络相关的程序以这种应用内部的格式进行传送,然后被编码成标准协议的格式。 一旦从应用程序来的数据被编码成一个标准的应用层协议(HTTP、FTP等),它将被传送到 IP 栈的下一层。

应用层协议一般都会使用到两个传输层协议之一:TCP、UDP。

运行在TCP协议上的应用层协议:

  • HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
  • HTTPS(HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
  • FTP(File Transfer Protocol,文件传输协议),用于文件传输。
  • POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
  • Telnet(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
  • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。

运行在UDP协议上的应用层协议:

  • BOOTP(Boot Protocol,启动协议),应用于无盘设备。
  • NTP(Network Time Protocol,网络时间协议),用于网络同步。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

其他应用层协议:

  • DNS(Domain Name Service,域名服务),用于完成 ip 地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
  • ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
  • ECHO(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
  • SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。

传输层

主要作用:

  • 为应用进程提供端到端的通信服务(“数据是否到达目的地?”)。
  • 保证数据按照正确的顺序到达的问题。
  • 在 TCP/IP 协议组中,传输协议也包括所给数据应该送给哪个应用程序。

TCP 协议:

  • 面向连接的、可靠的、基于字节流的传输层通信协议。
  • 尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。
  • 试图将数据按照规定的顺序发送。

面向连接:即连接导向式通信,是电信与电脑网络中的一种资料传输模式,采用实体电路交换或虚拟电路连线交换资料。首先要创建会话或者连线。

UDP 协议:

  • 一个无链接的数据报协议。
  • “不可靠”协议,不检查数据包是否已经到达目的地,不保证顺序。
  • 典型应用是流媒体(音频和视频等)这种按时到达比可靠性更重要的应用。
  • RTP 是基于 UDP 协议创建

网络层

在 TCP/IP 也称为网络互连层,在网络组成的网上选择路径将数据包传输,提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。由于TCP/IP协议体系中的网络层功能由 IP协议规定和实现,故又称IP层。

链路层

以太网协议规定:

  • 接入网络的设备都必须安装网络适配器,即网卡。
  • 数据包必须是从一块网卡传送到另一块网卡。
  • 而网卡地址就是数据包的发送地址和接收地址。
  • 有了 MAC 地址,以太网采用广播形式,把数据包发给子网内所有主机。
  • 子网内每台主机在接收到包以后,都会读取首部里的目标 MAC地址,和自己的 MAC地址 对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

MAC地址:用于在网络中唯一标示一个网卡。假设现有一台路由器,含有一个WAN端口及四个LAN端口。它的WAN端口会有一个如61.61.61.61的IP地址,也会有一个如00:0A:02:0B:03:0C的MAC地址。而它的四个LAN端口会各分配到一个例如192.168.1.0/24的IP地址,四个端口各会有一个不同的MAC地址。

链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。