深入浅出计算机网络
上QQ阅读APP看书,第一时间看更新

1.1.1 理解协议

学习计算机网络,必须先掌握计算机通信使用的协议。

对很多学习计算机网络的人来说,协议是不太好理解的概念。因为计算机通信使用的协议是大家看不到、摸不着的,所以总是感觉非常抽象、难以想象。为此,在讲计算机通信使用的协议之前,先看一份租房协议,再去理解计算机通信使用的协议就不抽象了。

其实协议对大家来说并不陌生,大学生走出校门参加工作就要和用人单位签署就业协议,工作后还有可能要租房住,就要和房东签署租房协议。下面通过一个租房协议来理解签协议的意义和协议包含的内容,进而理解计算机通信使用的协议。

如果租客租房不和房东签协议,只是口头和房东约定房租多少、每个月几号交房租、押金多少、家具家电设施损坏谁负责,时间一长,这些约定大家就都记不清了。一旦出现某种情况,租客和房东就容易产生误解和矛盾。

为了避免纠纷,租客和房东需要签订租房协议,将双方关心的事情协商一致并写到协议中,双方确认后签字。协议一式两份,双方都要遵守,如图1-2所示。

图1-2 租房协议

假如以上租房协议是租房协议的标准,为了简化协议的填写,租房协议可以定义成一个表格,如图1-3所示。出租方和承租方在签订租房协议时,只需填写表格要求的内容即可,协议的详细条款不用再填写了。表格中出租方姓名和身份证、承租方姓名和身份证、房屋位置等称为“字段”,这些字段既可以是定长,也可以是变长。如果是变长,要定义字段间的分隔符。

图1-3 租房协议定义需要填写的表格

计算机通信使用的协议也像租房协议一样,有甲方和乙方,除了定义甲方和乙方遵循的约定外,还会定义请求报文和响应报文的格式。报文格式类似于图1-3所示的表格。在以后的学习中,使用抓包工具分析数据包,看到的就是协议报文的格式,协议的具体条款我们看不到。图1-4所示的是IP定义的各个字段,我们称其为“IP首部”。网络中的计算机通信时只需按以下表格填写内容,通信双方的计算机和网络设备就能够按照网络层协议约定的内容工作。

图1-4 IP定义的需要填写的表格

应用层协议定义的报文格式,我们称其为“报文格式”,后面会讲到网络层协议和传输层协议定义的报文格式,我们称其为“网络层首部”和“传输层首部”。有的协议需要定义多种报文格式,例如,ICMP有3种报文格式:ICMP请求报文、ICMP响应报文和ICMP差错报告报文。再如,HTTP定义了两种报文格式:HTTP请求报文和HTTP响应报文。

上面的租房协议是双方协议,协议中有甲、乙双方。有的协议是多方协议,例如,大学生大四实习,要和实习单位签订实习协议,实习协议就是三方协议,包括学生、校方和实习单位。