TCP/IP-概述

前言

在编程过程中,总是会免不了需要网络方面知识,特别是TCP/IP协议,若了解,会在编程过程中产生潜移默化的影响和益处,因此有必要进行学习。

概述

分层

TCP/IP是一组不同层次上的多个协议的组合,其通常被认为是一个四层协议系统。

  • 链路层:也称为数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
  • 网络层:处理分组在网络中的活动,如分组的选路。
  • 运输层:为两台主机上的应用程序提供端到端的通信,TCP高可靠,UDP不可靠。
  • 应用层:处理特定的应用程序细节,应用层不关心下三层的具体细节。

在网络层的IP协议并不提供任何可靠性保证,其只是尽可能的将分组从源节点送到目的节点;而TCP层则在不可靠的IP层上提供了可靠的运输层,其采用超时重传、发送和接收端到端的确认分组等机制保证可靠传输。

TCP/IP分层

  • TCPUDP都采用了IP作为网络层协议。
  • UDP为应用程序发送和接收数据报(指从发送方传输到接收方的一个信息单元)。
  • ICMPIP协议的附属协议,IP层用其与其他主机或路由器交换错误报文和其他重要信息,其也可直接被应用程序使用,如PingTraceroute都使用了ICMP
  • IGMPInternet组管理协议,用来把一个UDP数据报多播到多个主机。
  • ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(以太网、令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

互联网的地址

  • A类地址范围从0.0.0.0127.255.255,B类地址范围从128.0.0.0191.255.255.255,C类地址从192.0.0.0223.255.255.255,D类地址从224.0.0.0239.255.255.255,E类地址从240.0.0.0255.255.255.255
  • 多接口主机具有多个IP地址,每个接口对应一个IP地址。

域名系统

DNS是一个分布式数据库,由它提供IP地址和主机名之间的映射关系,如将www.baidu.com映射为14.215.177.39

封装与分用

  • 应用程序使用TCP发送数据,数据被送入协议栈中,然后逐个通过每层直到被当作一串比特流送入网络,其中每层对收到的数据都要增加一些首部信息(尾部信息),TCP传给IP的数据单元称作TCP报文段IP传给网络接口层的数据单元称作IP数据报;通过以太网传输的比特流称作(长度必须在46-1500字节之间)。
  • UDP数据与TCP数据基本一致,但UDP传给IP的信息单元称作UDP数据报,而且UDP首部长为8字节。
  • IP首部会加入标识表明数据数据哪一层(TCP、UDP、ICMP、IGMP),具体会存入长度为8 bit的值(1表示ICMP,2表示IGMP,6表示TCP,17表示UDP)。
  • TCPUDP使用16 bit的端口号表示不同的应用程序,源端口号和目的端口号分别存入报文首部中。
  • 以太网的帧首部也会加入16 bit的帧类型域指明生成数据的网络层协议。
  • 分用与封装是逆过程,封装是一层层加信息,分用是一层层去掉信息。

端口号

  • FTP服务器TCP端口号为21Telnet服务器TCP端口号为23TFTP服务器的端口号为69,任何TCP/IP实现所提供的服务的端口号都是从1~1023之间。
  • 大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。

总结

通过本文可知,TCP/IP协议族分为四层,其中网络层和运输层最为关键,网络层提供点到点的服务,运输层提供端到端的服务。