网络基础 TCP/IP

2017-08-21

一、概念

计算机与网路设备之间的通信,需要基于相同的方法。不同设备、不同系统,使用的语言等,都需要事先确定规则,所定义的这一切规则就是协议。

TCP/IP就是互联网相关的各类协议的总称,包含从电缆的规格到IP地址的选定方法、寻找异地用户的方法、双方建立通讯的顺序,以及Web页面显示需要处理的步骤等。 ———《图解 TCP/IP》

二、TCP/IP 的分层管理

分层设计,把一个整个细化为多个部分,便于修改,问题排查。

  • 应用层: 决定了向用户提供应用服务时通信的活动。如FTP(文件传输协议)、DNS(域名系统)。HTTP协议也处于这一层。
  • 传输层: 为应用层提供处于网路连接中的两台计算机之间的数据传输。如TCP(文本控制协议)、UDP(用户数据报协议)。
  • 网络层: 处理网络上流动的数据包。数据包是网络传输的最小数据单位(所以为什么叫抓包,不是抓头上的包包)。该层规定了数据包传输路线的选定。
  • 链路层: 处理链接网路的硬件部分。包括操作系统、设备驱动、网卡、光纤等所有的硬件范畴。

三、TCP/IP的通信传输流

一张图可以解释。 TCP/IP的通信传输流

可以简单理解为是一个快递的运送过程:
①卖家接收到订单,选定要快递的商品(应用层)
②卖家包装商品,整理收件信息(传输层)
③从顺丰、申通、韵达、天天等快递商家选定一家,联系小哥来取件或到门店寄件(网络层)
④快递商家确定位置,走你(链路层)
⑤商品到达目的地,选定负责该条线路的小哥配送(网络层)
⑥小哥骑上电驴,嘟嘟嘟~(传输层)
⑦收件,拆箱(应用层)

四、IP、TCP和DNS

1.IP

IP的协议的作用是确保数据能够传递给对方,需要满足两个重要条件。IP地址(节点被分配的地址)和MAC地址(网卡所属的固定地址),IP地址可更换,MAC地址基本不会变(还是快递,收件人的电话号码和地址会变,但收件人的姓名基本不会变)。
通过ARP协议可以用IP来查找到MAC地址,但一般的数据传输都需要经过多台计算机和网路设备才能连接到对方,所以是没有人能全面了解互联网中的传输状况。
ARP协议找寻MAC地址

2.TCP

TCP协议位于传输层,它不仅在传递大数据时会把数据分割成小的数据包进行管理,而且还能够通过三次握手确认数据是否成功送达。
握手过程会带有TCP特有的标志——SYN和ACK。
三次握手

3.DNS

DNS协议提供通过域名查找IP地址或反过来通过IP地址得到域名的服务。

五、状态码304

标识信息: Not Modified

要完整地解释这个状态码的来龙去脉,首先得理解什么是缓存。

1.缓存

在Web应用中,资源大多是从源服务器上来获取,特别是对于静态资源这类不大会变化的资源来说,如果每次请求源服务器都返回相同的静态资源,这对于追求舒坦的程序员来说,太痛苦了。

册那!每次都要开车走30公里到厂家去拿货,如果马路对面的经销商就有该多好~

因此提出了缓存技术,不仅节约资源,还提升了页面加载速度。

静态资源的缓存,根据缓存位置的不同,分为代理服务器缓存和客户端缓存,都减少了对源服务器的访问。那么,当服务器资源已更新的时候,客户端又该如何拿到最新的资源?

2.IF-Modified-Since

在HTTP请求头里,可以为字段IF-Modified-Since添加一个时间值,用来确认代理或客户端拥有的本地资源的有效性。

服务器收到请求后,会比较资源的更新时间,如果IF-Modified-Since字段值在资源更新时间之前,则接受请求,返回最新资源;如果资源更新时间在IF-Modified-Since字段值之后,表明请求的资源没有更新过,返回状态码304响应。 304

获取资源的最新更新时间,可以查看首部字段Last-Modified