【读过的书,留下的迹】计算机网络(第6版)

本文概览了计算机网络的基本概念,介绍了OSI七层模型、TCP/IP模型以及谢希仁五层模型的区别与联系,深入解析了网络层、传输层的功能和服务特性,包括IP地址、ARP协议的工作原理、TCP与UDP协议的特点及其在网络通信中的作用。

前言

  最近发现有时候看完一本书,时间久了容易忘记,看书不总结思考效果大打折扣,故打算写这一系列文章,一是为了整理书中的要点,帮助自己消化理解;二是勉励自己多看书思考。文章中不会把书中内容讲解的非常详细,只是总结概括,适合已经阅读过该书的读者。

第1章:概述

(1)计算机网络体系结构

  • OSI七层
    • 概念清楚,理论完整,复杂不实用
  • TCP/IP体系
    • 应用广,程序员自己归纳整理
  • 谢希仁五层
    • 大同小异



  • 应用层
    • 应用层协议:应用进程间通信和交互的规则
    • HTTP、SMTP、FTP等协议
  • 运输层
    • 为两个主机中进程之间的通信提供通用的数据传输服务
    • 传输控制协议(TCP)、用户数据报协议(UDP)
  • 网络层
    • 为不同主机提供通信服务

第4章:网络层

特点:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,不提供服务质量的承诺。

  • 与IP协议配套使用的有

    • 地址解析协议ARP(由IP地址,找出对应的硬件地址)
    • 逆地址解析协议RARP(硬件地址,找出IP地址,已淘汰,被DHCP协议替代)
    • 网际控制报文协议ICMP(ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告,更有效地转发IP数据报和提高交付成功的机会。ICMP为IP层数据报的数据)
    • 网际组管理协议IGMP(应用于多播)
  • ARP协议工作原理

    • 每个主机维护ARP列表,即 IP 地址和 MAC 地址对应关系。
    • 源主机要发送数据, ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址。有,直接发送数据;没有,向本网段的所有主机发送 ARP 数据包,包括:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址。
    • 当本网络的所有主机收到该 ARP 数据包时,检查数据包中的 IP 地址是否是自己的 IP 地址,不是,则忽略该数据包;是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
    • 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

(1)IP地址组成



  • IP地址由全世界范围唯一的32位标识符组成
  • IP地址 = 网络号 + 主机号

(2)IP地址与硬件地址

  • IP地址放在IP数据报的首部,硬件地址则放在MAC帧的首部
  • 在网络层及以上使用的是IP地址,在数据链路层及以下使用的是硬件地址

(3)划分子网

  • 用上述2级IP地址,会造成大量IP地址空间浪费
  • 一个单位将所属网络划分为若干个子网,成为3级IP地址
  • IP地址 = 网络号 + 子网号 + 主机号



  • 从IP地址中无法看出是否进行子网的划分,为此使用子网掩码
  • 子网地址(网络地址) = IP地址 & 子网掩码

第5章:运输层

(1)概述

  • 网络层时为主机之间提供逻辑通信
  • 运输层为应用进程之间提供端到端的逻辑通信

  • 复用

    • 应用层所有的应用进程通过运输层再传到IP层(类似大家把快递给学校收发室)
  • 分用

    • 运输层从IP层收到数据后交付指明的应用进程(类似收发室把信件给大家)
  • 协议端口

    • IP层把数据报送到目的主机的某一个端口,即停止



(2)用户数据报协议UDP

  • 特点
    • 无连接、尽最大努力交付、面向报文、没有拥塞控制、一(多)对一(多)、首部开销小

(3)传输控制协议TCP概述

  • 特点
    • 面向连接、点对点、可靠交付、全双工通道、面向字节流

TCP连接 = { socket1, socket2 } = {( IP1 : port1 ), ( IP2 : port2 )}
注意:socket在不同地方有不同的含义,这里socket套接字指端口号拼接到IP地址

(4)TCP首部格式



  • 序号:指本报文段所发送的数据的第一个字节的序号
    • eg:如一报文段的序号字段值是301,携带100字节数据,下一个报文段的序号字段值应为401
  • 确认号:期望收到对方下一个报文段的第一个数据字节的序号
    • eg:如B收到了A一个报文段,其序号是501,数据长度为200,表明B收到了700为止的数据,B期望收到A的下个数据序号是701,故B的确认号置为701
  • 数据偏移:指定TCP首部长度
  • URG紧急
  • ACK确认:仅当ACK=1时确认号有效,建立连接后,ACK必须为1
  • PSH推送
  • RST复位
  • SYN同步
  • FIN终止
  • 窗口:现在允许对方发送的数据量。

(5)TCP一些考虑

  • TCP可靠传输实现
    • 以字节为单位的滑动窗口
  • TCP流量控制
    • 利用窗口值实现流量控制(发送方发送窗口不能超过接收方给出的接受窗口数值)
  • TCP拥塞控制
    • 拥塞定义:对网络中某一资源的需求超过了该资源所能提供的可用部分
    • 拥塞窗口:拥塞窗口的大小取决于拥塞程度,发送方让自己的发送窗口等于拥塞窗口
    • 解决方法:
      • 慢开始:由小到大逐渐增大拥塞窗口,每经过一个传输轮次,拥塞窗口加倍
      • 拥塞避免:每经过一个往返时间,拥塞窗口加1
      • 快重传:
      • 快恢复

(6)TCP运输连接管理



  • 三次握手建立连接
    • 一:Client置同步位SYN=1,选择初始序号seq=x,报文不带数据,消耗一个序号,进入SYN-SENT状态(同步发送)
    • 二:Server置SYN=1,确认为ACK=1,确认号ack=x+1,选一个初始序号seq=y,报文不带数据,消耗一个序号,进入SYN-RCVD(同步收到)
    • 三:Client收到后,置ACK=1,ack=y+1,seq=x+1,本次可携带或不携带数据,进入ESTABLISHED(已建立连接)
  • 为什么要“三次”
    • 防止已失效的连接请求报文段突然又传送到了Server,而产生无用连接



  • 四次挥手释放连接
    • 一:Client置终止为FIN=1,seq=u为前面已传送过的最后一个字节序号加1,报文不带数据,消耗一个序号,进入FIN-WAIT-1状态(终止等待1)
    • 二:Server置ACK=1,进入CLOSE-WAIT(关闭等待)状态,这是TCP处于半关闭状态
    • 三:Server没数据要传Client了,置FIN=1,进入LAST-ACK(最后确认)状态
    • 四:Client确认,进入TIME-WAIT(时间等待)状态。TCP经过2MSL时间后释放
  • 为什么要等2MSL?
    • 为保证最后一个确认报文到达Server
    • 防止出现已失效的连接请求,经过2MSL后,所有请求都将从网络消失

第6章:应用层

(1)域名系统DNS

  • 根据域名,查找IP

(2)万维网WWW

URL = <协议>://<主机>:<端口>/<路径>

(3)超文本传送协议HTTP

  • HTTP/1.0
    • 主要缺点:每请求一个文档TCP要两倍往返时间RTT开销
  • HTTP/1.1
    • 主要优点:持续连接:万维网服务器发送响应后仍保持TCP连接,后续请求文档在同一服务器上都可用这一连接

(4)HTTP报文结构



  • 请求报文
    • 从客户向服务器发送请求报文
  • 响应报文
    • 从服务器到客户的回答

(5)请求方法



(6)响应状态码



常用



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值