TCP/IP协议
信号的传输总要符合一定的协议(protocol)。就像人与人之间对话所使用的语言一样,协议不同,自然也就不能实现“通信”。
TCP/IP协议
分为: 网络接口层,网络互联层,传输层,应用层
物理层
所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,比如电信号、电压。对于数字应用来说,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列。
数据链路层
息以帧(frame)为单位传输。信息是一段有序的0/1序列,而帧,是这个序列中符合特定格式的一小段。连接层协议的功能就是识别0/1序列中所包含的帧。并且负责 物理层和网络层之间的通信。
帧中,有源地址和目的地址,还有能够探测错误的校验序列(FCS)。当然,帧中最重要的最重要是所要传输的数据
通过连接层协议,我们可以建立局域的以太网或者WiFi局域网,并让同一局域网中的两台计算机通信。
网络层
数据链路层使得同一个局域网的人可以互相通信,那么不处于同一个局域网如何通信呢?我们需要一个“中间人”。这个“中间人”必须有以下功能:
- 能从物理层上在两个网络的接收和发送0/1序列,
能同时理解两种网络的帧格式。
网关:
路由器(router)就是为此而产生的“中间人”,也称为“网关”。一个路由器有多个网卡(NIC,Network Interface Controller)。每个网卡可以接入到一个网络,并理解相应的连接层协议。在帧经过路由到达另一个网络的时候,路由会读取帧的信息,并改写以发送到另一个网络。
两个不同局域网的计算机是这么通信的:
主机发出数据 -> 发现与对端主机处在不同个局域网 -> 数据交给网关进行转发 -> 送达目的端计算机
实际情况比这更加复杂,其中省略了ARP、ICMP、路由等步骤
在连接层,一个帧中只能记录目的地址和源地址两个地址。而上面的过程需要经过四个地址(计算机1,网关地址,以太网接口,计算机2)
因此,IP协议应运而生。
传输层
上面的三层协议让不同的计算机之间可以通信。但计算机中可能运行了许多个进程,每个进程都可能有自己的通信需求。我们使用网络接口层、网络层实现了主机与主机之间的通信,可是, 软件与软件之间的通信该如何解决呢? 没错,就是传输层要做的事情了。
端口号
计算机有多个进程,那么我们如何辨别是某个进程发出的信息请求呢? 比如我们打开firefox浏览网页,与此同时,又用QQ来接收邮件。我们需要有一个标志来识别,也就是端口号啦。
我们知道IP层的ip地址可以唯一标识主机,而端口号可以唯一标示主机的一个进程。
Internet 在传输层有两种主要的协议:一种是面向连接的协议 TCP ,一种是无连接的协议 UDP。利用端口号,一台主机上多个进程可以同时使用 TCP/UDP 提供的传输服务,并且这种通信是端到端的,它的数据由 IP 传递,但与 IP 数据报的传递路径无关。
应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。

