热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

这是一份详细&清晰的计算机网络基础学习指南

前言计算机网络基础该是程序猿需掌握的知识,但往往会被忽略今天,我将献上一份详细&清晰的计算机网络基础学习指南,涵盖TCPUDP协议、Http协议、Socket等,希望你们会喜欢。目

《这是一份详细 & 清晰的计算机网络基础 学习指南》

前言
  • 计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略
  • 今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。
目录

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

1. 计算机网络体系结构

1.1 简介

  • 定义
    计算机网络的各层 + 其协议的集合
  • 作用
    定义该计算机网络的所能完成的功能

1.2 结构介绍

  • 计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构
  • OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用
  • TCP / IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网 和 广域网
  • 五层体系结构:融合了OSITCP / IP的体系结构,目的是为了学习 & 讲解计算机原理

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

低三层为通信子网,负责数据传输
高三层为资源子网,相当于计算机系统,完成数据处理;
传输层承上启下

  • TCP / IP的体系结构详细介绍
    由于 TCP / IP体系结构较为广泛,故主要讲解

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

  • OSI的体系结构详细介绍

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

2. TCP协议

Transmission Control Protocol,即 传输控制协议

  1. 属于 传输层通信协议
  2. 基于TCP的应用层协议有HTTPSMTPFTPTelnetPOP3

关于TCP的其他知识:如三次握手、四次挥手、无差错控制原理等,具体请看文章:计算机网络:这是一份全面 & 详细 的TCP协议攻略

3. UDP协议

3.1 定义

User Datagram Protocol,即 用户数据报协议

  1. 属于 传输层通信协议
  2. 基于UDP的应用层协议有 TFTPSNMPDNS

3.2 特点

无连接的、不可靠的、面向报文、无拥塞控制,具体介绍如下:

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

3.3 优缺点

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

3.4 应用场景(对应应用层协议)

要求通信速度高

如:
域名转换:DNS协议
文件传输:FTP协议
网络管理:SNMP协议
远程文件服务器:NFS协议

3.5 报文段格式

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

3.6 TCP、UDP协议的区别

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

4. HTTP协议
  • 简介

    《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

  • 关于其工作方式、报文段等知识,请看文章:这是一份全面& 详细 HTTP知识讲解

5. Socket

5.1 简介

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

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

Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}

  • 一个 Socket 实例 唯一代表一个主机上的一个应用程序的通信链路

5.2 其他知识

关于Socket的原理、机制过程 & 使用方式,具体请看文章:Android:这是一份很详细的Socket使用攻略

6. 其他知识

6.1 在浏览器中输入url地址 ->> 显示主页的过程

打开一个网页,整个过程会使用哪些协议

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

6.2 IP地址(IPv4地址)

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

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

其中:

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

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

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

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

6.3 ICMP协议

  • 定义
    Internet Control Message Protocol,即 网际控制报文协议
  1. 属于IP层协议
  2. 注:ICMP报文不是高层协议,而是作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去
  • 作用
    更有效地转发IP数据包 & 提高交付成功的机会

同时允许主机 / 路由器报告差错 & 异常情况

  • 分类
    ICMP差错报告报文 & ICMP询问报文

  • 主要应用
    PING(分组网间探测)、Traceroute(跟踪1个分组从源点到终点的路径,原理 = 从源主机向目的主机发送一连串的IP数据报)

下面,将主要介绍Ping的过程

6.4 Ping的过程

  • 定义
    Packet InterNet Groper,即分组网间探测
  1. ICMP报文的1个重要应用:使用了IPCM回送请求 & 回送回答报文
  1. 是应用层直接使用网络层ICMP的1个例子,无经过传输层的TCP、UDP
  • 作用
    测试2个主机的连通性

  • 原理

    1. 向目的主机发送多个ICMP回送请求报文
    2. 根据 目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
    3. 最终显示的结果:发送到目的主机的IP地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值
  • 过程
    假设有两台主机:
    (目的主机)PC1:IP = 192.168.1.1
    (源主机)PC2:IP = 192.168.1.2

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

6.5 路由器与交换机的区别

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

6.6 COOKIE 与 Session

  • 简介

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

  • 区别 & 对比

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

6.7 COOKIE 与 Token

  • 简介

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

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

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图

7. 总结
  • 本文全面讲解了 开发的基础知识:计算机网络

  • 下面我将继续讲解 编程开发的基础知识,感兴趣的同学可以继续关注本人运营的Wechat Public Account

  • 我想给你们介绍一个与众不同的Android微信公众号(福利回赠)

  • 我想邀请您和我一起写Android(福利回赠)

请点赞!因为你的鼓励是我写作的最大动力!

相关文章阅读
Android开发:最全面、最易懂的Android屏幕适配解决方案
Android事件分发机制详解:史上最全面、最易懂
Android开发:史上最全的Android消息推送解决方案
Android开发:最全面、最易懂的Webview详解
Android开发:JSON简介及最全面解析方法!
Android四大组件:Service服务史上最全面解析
Android四大组件:BroadcastReceiver史上最全面解析

欢迎关注Carson_Ho的简书!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

欢迎关注carson_ho的微信公众号

《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图
《这是一份详细 & 清晰的计算机网络基础 学习指南》 示意图


推荐阅读
  • ​如何设计一个安全可靠的 API 接口?
    作者|阿文责编|屠敏出品|CSDN(ID:CSDNnews)最近几年,随着RESTfulAPI开始风靡,使用H ... [详细]
  • 六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...
    六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现一、主动模式和被动模式主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户 ... [详细]
  • 为什么80%的码农都做不了架构师?#0系列目录#聊聊远程通信Java远程通讯技术及原理分析聊聊Socket、TCPIP、HTTP、FTP及网 ... [详细]
  • IE下PHPiframe跨域导致session丢失问题的解决方法|一个登录页面,被别的网站用iframe嵌进去后,死活无法登录(只在IE中存在这种情况)。主要是session无 ... [详细]
  • 4种分布式Session的实现方式!老大直呼666...
    前言公司有一个Web管理系统,使用Tomcat进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多& ... [详细]
  • Jenkins自动部署SpringBoot项目实践教程
    Jenkins自动部署SpringBoot项目实践教程-目录1、Jenkins安装2、Jenkins插件安装3、点击添加凭据4、Jenkins环境配置4.1、全局配置4.2、系统配 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • 开发笔记:Linux学习笔记4CentOS7中redis3.2.9安装教程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux学习笔记4-CentOS7中redis3.2.9安装教程相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
author-avatar
黄皮-_985
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有