一篇读懂计算机网络

author:pasca
time:2019/01/05

前言:部分来源于网络,仅供学习使用。

[TOC]

一、计算机网络体系结构

大道尚有三千,而为了多种维度描述网络,到现在也有多种网络体系结构。分别是TCP/IP四层网络模型,TCP/IP五层网络模型以及我们广为人知的ISO七层网络模型。
当然,无论哪种模型,其目的都是为了建立 一个标准而让更多的人可以使用它,就如同我们的语言:普通话和英语。
而目前TCP/IP协议已经成为Internet中的“通用语言”,学习和使用网络必不可少。

国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即我们熟知的OSI七层模型。此外,还有TCP/IP 四层模型、TCP/IP 五层模型。

  • OSI体系结构:概念清楚 & 理念完整,但复杂&不实用
  • TCP/IP 四层体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网和广域网
  • TCP/IP 五层体系结构:OSI和TCP/IP四层模型的融合,开放了应用较多的数据链路层和物理层,便于学习使用


这里主要讲解OSI模型,以便深入理解TCP/IP模型。

1、物理层

物理层主要是原始数据的传输,其中可能发生的错误由上层的数据链路层来校验。这里记住物理层两个重要的网络设备:中继器和集线器。
两者的功能主要是连接客户端之间信号的放大、
物理层

2、数据链路层

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层

3、网络层

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。对于网络层的理解,关键词是“路径选择、路由及逻辑寻址”。
网络层-w500

4、传输层

传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。
网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
传输层

5、会话层

会话层主要是利用传输层提供的端到端服务,向表示层提供增值服务,同时负责建立、管理以及终止会话进程,实现数据同步。

6、表示层

表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

7、应用层

为操作系统或网络应用程序提供访问网络服务的接口。
应用层 -1-

二、IP地址(IPv4地址)详解

1、定义

连接在Internet中的每一台主机(或 路由器)的全球唯一的标识符

2、组成

IP地址 = 32位 = 网络号 + 主机号;即IP地址 ={<网络号>,<主机号>}

其中:
网络号:标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。
主机号:标志该主机(或路由器)。一个主机号在它面前的网络号所指明的网络范围必须是唯一的。

不同类型的IP地址,其主机号 & 网络号所占字节数不同;故:一个IP地址在整个网络范围内是唯一的

3、分类

传统的IP地址是分类的地址,分为A,B,C,D,E五类

区别在于网络号 & 主机号占的字节数不同

-w500

4、私有地址

IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部(公司内网)使用。这三个地址段分别位于A、B、C三类地址内:
 A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
 B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
 C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
  123

特别注意:在各类IP地址中,有一些IP地址用于特殊用途,不能用于做主机IP地址
-w400

三、TCP/UDP详解

1、TCP

1.1 定义和特点,

Transmission Control Protocol,即 传输控制协议。

  • 面向连接、面向字节流、全双工通信、可靠

1.2 优缺点

  • 优点:数据传输可靠
  • 缺点:效率慢(因需建立连接、发送确认包等

1.3 报文段格式

首部前20个字符固定、后面有4n个字节是根据需而增加的选项,故 TCP首部最小长度 = 20字节

1.4 建立链接——三次握手

-w600

成功进行TCP的三次握手后,就建立起一条TCP连接,即可传送应用层数据

重点:三次握手的必要性

  • 结论
    防止服务器端因接收了早已失效的连接请求报文,从而一直等待客户端请求,最终导致形成死锁、浪费资源

  • 具体描述

1.5 释放连接——四次挥手

在通信结束后,双方都可以释放连接,共需 四次挥手
-w500

重点:四次挥手的必要性

为了保证通信双方都能通知对方 需释放 & 断开连接,即释放连接后,都无法接收 / 发送消息给对方

2、UDP

2.1 定义和特点

User Datagram Protocol,即 用户数据报协议,无连接的、不可靠的、面向报文、无拥塞控制。

2.2 优缺点

  • 优点:速度快
  • 缺点:消息易丢失(特别是 网络较差时)

2.3 报文段格式

  • UDP的报文段共有2个字段:数据字段 & 首部字段
  • 下面主要介绍首部(8字节、4个字段)

3、TCP和UDP比较

四、HTTP协议

1、简介

2、工作方式

HTTP协议采用 请求 / 响应 的工作方式,如下图。

3、HTTP结构介绍

1、请求行

意义:声明请求方法 、主机域名、资源路径 & 协议版本

请求行的组成 = 请求方法 + 请求路径 + 协议版本

重点:Post和Get的方法

示例:

GET /buckets HTTP/1.1

2、请求头

  • 作用:声明客户端、服务器 / 报文的部分信息
  • 使用方式:采用”header(字段名):value(值)“的方式
  • 常用请求头
  1. 请求和响应报文的通用Header
  2. 常见请求Header

示例

Host: rs.qbox.me
Content-Type: application/x-www-form-urlencoded
User - Agent:Mozilla/5.0 

3、请求体

  • 作用:存放 需发送给服务器的数据信息
可选部分,如 GET请求就无请求数据

有下面三种使用方式:

4、总结

示例:

五、Socket

Soclet即套接字,是应用层 与 TCP/IP 协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)。

Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)
即:通过Socket,我们才能在Andorid平台上通过 TCP/IP协议进行开发
对用户来说,只需调用Socket去组织数据,以符合指定的协议,即可通信
  • 成对出现,一对套接字:
Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}
  • 一个 Socket 实例 唯一代表一个主机上的一个应用程序的通信链路

六、小知识

1、路由器和交换机的区别

2、Cookie 与 Session

  • 简介

  • 区别&对比

3、Cookie 与 Token

  • 简介
    -w700

  • 基于Cookie的身份验证 & 验证流程
    -w700
    -w500

  • 基于Token的身份验证 & 验证流程

4、浏览器打开域名的过程解析

打开一个网页,完成流程如下:

猜你喜欢

转载自blog.csdn.net/qinglianchen0851/article/details/86132425