网络基础 TCP/IP
TCP/IP 协议族
TCP/IP 是互联网相关的各类协议族的总称 eg: IEEE 802.3 、FDDI、ICMP、TCP、HTTP、IP、DNS、FTP、PPPPoE、UDP、SNMP…
TCP/IP 分层管理
按层次分为四层:应用层、传输层、网络层、数据链路层
应用层
决定向用户提供应用服务时通信的活动(FTP、DNS、HTTP…)
传输层
传输层对上层应用过层,提供处于网络连接中的两台计算机之间的数据传输,在传输层有两个性质不同的协议:TCP(Transmission Control Protocol, 传输控制协议),和UDP(UserData Protocol, 用户数据报协议)
网络层(网络互连层)
网络层用来处理在网络上流动的数据包(网络传输的最小数据单位)。 该层规定计算机间的数据传输路径(传输路线)。
链路层(数据链路层,网络接口层)
处理连接网络的硬件部分。
TCP/IP 通信传输流
发送端与接收端,都有四个分层,且每个分层相对应。 以http为例: 发送端在应用层发出一个http请求,在传输层(TCP协议)把请求报文分割,并在分割后的报文首部打上标记序号及端口号,发给网络层(IP协议), 在网络层增加作为通信目的地的MAC地址,发给链路层, 链路层把数据发给接收端。接收端接收到数据, 从链路层开始,每经过一层,把对应的首部消去,得到最初信息。
应用层: 发送请求 (http) 传输层 :分割报文,标记序号和端口 (tcp首部) 网络层:添加mac地址 (ip首部) 链路层:硬件通信传输 (以太网首部)
发送端数据在层与层之间传输时,每经过一层,会在数据首部打上该层的首部信息。接收端在对应的层把首部信息祛除。这种把数据信息包装起来的做法称为封装。
与HTTP关系密切的协议:IP、TCP、DNS
负责传输的 IP 协议 (Internet Protocol)
位于网络层,负责把各种数据包传送给对方。
其中,需要两个条件:IP地址和MAC地址 (Media Access Control Address)
IP地址:指明节点被分配到的地址 (可变) MAC地址:网卡所属地址 (基本不可变)
使用ARP协议 (Address Resolution Protocol) 凭借MAC地址进行通信
通信过程:在广域网中,IP间的通信依赖MAC地址。通信双方通常经过多台计算机或网络设备的中转 (需获取下一站的 MAC 地址)才能连接到对方。ARP协议是一种解析地址的协议,可以根据通信方的IP地址反查出对应的MAC地址。
确保可靠性的 TCP 协议
TCP位于传输层,提供可靠的字节流服务
字节流服务(Byte Stream Service):将大数据分割成报文段为单位的数据包进行管理。
可靠:TCP三次握手策略 (three-way handshaking) 以及其它策略 使用TCP协议,发送方与接收方互相发送带有标志的数据包,以确认是否成功送达。若握手过程出现问题,则以相同顺序发送相同数据包。
发送方:发送 syn (synchronize) 接收方:接收到 syn,发回 syn/ack 发送方:收到 syn/ack 发回 ack (acknowledgement)
负责域名解析的 DNS 服务
DNS (Domain Name System) 协议位于应用层。 DNS 协议提供通过域名查找IP地址,或逆向反查域名的服务。
各种协议与http协议的关系
客户端:访问网址 DNS服务器:向客户端返回对应的IP 客户端:收到IP 客户端:通过TCP协议,把请求报文分割、封装 路由器:通过IP协议,搜索对方的IP,一边中转一边传输 服务端:通过IP协议,接收到客户端数据 服务端:通过TCP协议,解读客户端数据 服务端:确认数据正确 HTTP:锁定客户端所请求的服务器,处理所需资源 HTTP:将处理结果,通过TCP/IP通信协议回传给客户端
URL 和 URI
URL:统一资源定位符 (Uniform Resource Locator)
用字符串标识某互联网资源的位置
URI :统一资源标识符 (Uniform Resource Identifier)
用字符串标识某互联网资源 包括资源指定的访问方式(http、ftp、mailto、telnet、file…)等
RFC
征求修正意见书(Request for Comments): 用来指定http协议标准的文档。 相当于互联网的设计文档,基本上应用程序都遵循RFC标准,客户端或服务器上运行的应用服务不遵循该标准,有可能无法被web浏览器访问。大型应用的服务器除外,其它的客户端或服务器会主动配合。
|