《计算机网络学习指南》——学习网络,这一篇足以让你心满意足

author:pasca time:2019/01/05编程

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

[TOC]浏览器

1、计算机网络体系结构

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

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

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

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

一、物理层

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

物理层

二、数据链路层

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

数据链路层

三、网络层

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

网络层-w500

四、传输层

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

传输层

五、会话层

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

六、表示层

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

七、应用层

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

应用层 -1-

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

一、定义

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

二、组成

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

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

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

三、分类

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

区别在于网络号 & 主机号占的字节数不一样
复制代码

-w500

四、私有地址

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

3、TCP/UDP详解

一、TCP

1.1 定义和特色,

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

  • 面向链接、面向字节流、全双工通讯、可靠

1.2 优缺点

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

1.3 报文段格式

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

1.4 创建连接——三次握手

-w600
成功进行TCP的三次握手后,就创建起一条TCP链接,便可传送应用层数据

重点:三次握手的必要性

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

  • 具体描述

1.5 释放链接——四次挥手

在通讯结束后,双方均可以释放链接,共需 四次挥手

-w500

重点:四次挥手的必要性

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

二、UDP

2.1 定义和特色

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

2.2 优缺点

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

2.3 报文段格式

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

三、TCP和UDP比较

4、HTTP协议

一、简介

二、工做方式

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

三、HTTP结构介绍

一、请求行

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

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

重点:Post和Get的方法

示例:

GET /buckets HTTP/1.1
复制代码

二、请求头

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

示例

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

三、请求体

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

有下面三种使用方式:

四、总结

示例:

5、Socket

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

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

6、小知识

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

二、Cookie 与 Session

  • 简介

  • 区别&对比

三、Cookie 与 Token

  • 简介

    -w700

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

    -w700
    -w500

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

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

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

相关文章
相关标签/搜索