计算机网络Intro

1. 计算机网络体系结构
1.1 简介
- 定义 计算机网络的各层 + 其协议的集合
- 作用 定义该计算机网络的所能完成的功能
1.2 结构介绍
- 计算机网络体系结构分为3种:
OSI体系结构、TCP/IP体系结构、五层体系结构
OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用TCP/IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网 和 广域网- 五层体系结构:融合了
OSI与TCP/IP的体系结构,目的是为了学习 & 讲解计算机原理

低三层为通信子网,负责数据传输 高三层为资源子网,相当于计算机系统,完成数据处理; 传输层承上启下
TCP/IP的体系结构详细介绍 由于TCP/IP体系结构较为广泛,故主要讲解

低三层为通信子网,负责数据传输 高三层为资源子网,相当于计算机系统,完成数据处理; 传输层承上启下
TCP/IP的体系结构详细介绍 由于TCP/IP体系结构较为广泛,故主要讲解


OSI的体系结构详细介绍


2. TCP协议
Transmission Control Protocol,即 传输控制协议
- 属于 传输层通信协议
- 基于
TCP的应用层协议有HTTP、SMTP、FTP、Telnet和POP3
关于TCP的其他知识:如三次握手、四次挥手、无差错控制原理等,具体请看文章
https://www.jianshu.com/p/65605622234b
3.1 定义
User Datagram Protocol,即 用户数据报协议
- 属于 传输层通信协议
- 基于
UDP的应用层协议有TFTP、SNMP与DNS
3.2 特点
无连接的、不可靠的、面向报文、无拥塞控制,具体介绍如下:

3.3 优缺点
- 优点:速度快
- 缺点:消息易丢失(特别是 网络较差时)
3.4 应用场景(对应应用层协议)
要求通信速度高
如: 域名转换:
DNS协议 文件传输:FTP协议 网络管理:SNMP协议 远程文件服务器:NFS协议
3.5 报文段格式
- UDP的报文段共有2个字段:数据字段 & 首部字段
- 下面主要介绍首部(8字节、4个字段)

3.6 TCP、UDP协议的区别
4. HTTP协议
简介

关于其工作方式、报文段等知识,请看文章:
5. Socket
5.1 简介
- 即套接字,是应用层 与
TCP/IP协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)

Socket不是一种协议,而是一个编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)- 即:通过
Socket,我们才能在Andorid平台上通过TCP/IP协议进行开发- 对用户来说,只需调用Socket去组织数据,以符合指定的协议,即可通信
- 成对出现,一对套接字:
Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}
- 一个
Socket实例 唯一代表一个主机上的一个应用程序的通信链路
5.2 其他知识
关于Socket的原理、机制过程 & 使用方式,具体请看文章:
https://www.jianshu.com/p/089fb79e308b
6. 其他知识
6.1 在浏览器中输入url地址 ->> 显示主页的过程
打开一个网页,整个过程会使用哪些协议

6.2 IP地址(IPv4地址)
定义 连接在
Internet中的每一台主机(或 路由器)的全球唯一的标识符组成 IP地址 = 32位 = 网络号 + 主机号;即IP地址::={<网络号>,<主机号>}
其中:
- 网络号:标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。
- 主机号:标志该主机(或路由器)。一个主机号在它面前的网络号所指明的网络范围必须是唯一的。
不同类型的IP地址,其主机号 & 网络号所占字节数不同;故:一个IP地址在整个网络范围内是唯一的
- 分类 传统的IP地址是分类的地址,分为A,B,C,D,E五类
区别在于网络号 & 主机号占的字节数不同

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

6.3 ICMP协议
- 定义
Internet Control Message Protocol,即 网际控制报文协议
- 属于IP层协议
- 注:ICMP报文不是高层协议,而是作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去
- 作用 更有效地转发IP数据包 & 提高交付成功的机会
同时允许主机 / 路由器报告差错 & 异常情况
分类
ICMP差错报告报文 &ICMP询问报文主要应用 PING(分组网间探测)、Traceroute(跟踪1个分组从源点到终点的路径,原理 = 从源主机向目的主机发送一连串的IP数据报)
下面,将主要介绍Ping的过程
6.4 Ping的过程
- 定义
Packet InterNet Groper,即分组网间探测
- 是
ICMP报文的1个重要应用:使用了IPCM回送请求 & 回送回答报文
- 是应用层直接使用网络层ICMP的1个例子,无经过传输层的TCP、UDP
作用 测试2个主机的连通性
原理
- 向目的主机发送多个ICMP回送请求报文
- 根据 目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
- 最终显示的结果:发送到目的主机的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. 总结
本文全面讲解了 开发的基础知识:计算机网络
计算机网络Intro的更多相关文章
- 计算机网络-DNS和HTTPDNS了解
DNS 和 HTTPDNS DNS 域名解析的过程 传统 DNS 存在的问题 1.域名缓存问题 2.域名转发问题 3.出口 NAT 问题 4.DNS 域名更新问题 5.解析延迟问题 6.运营商劫持 H ...
- [计算机网络]简易http server程序
好久没输出了,知识还是要写下总结才能让思路更加清晰.最近在学习计算机网络相关的知识,来聊聊如何编写一个建议的HTTP服务器. 这个http server的实现源代码我放在了我的github上,有兴趣的 ...
- Intro to CSS 3D transforms
原文地址:Intro to CSS 3D transforms,本文只是翻译了其中的一部分,省去了作者写文章的原因浏览器兼容部分(已经过时) Perspective 元素需要设置需要设置perspec ...
- [Network] 计算机网络基础知识总结
计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...
- 计算机网络中的帧封装(C实现)
这段时间开始复习计算机网络,看到帧封装这一节,结合以前的课程设计,就用C写了个帧封装的程序,说实话C学的确实不怎么样,实现的时候对于文件操作那部分查了好多资料,下面说说帧封装是啥情况. 学过计算机网络 ...
- Intro.js 网站演示
Intro.js 为您的网站和项目提供一步一步的.更好的介绍 使用简单 引入 js 和 css,然后在代码中加入步骤和介绍. 快速小巧 7 KB 的 JavaScript 和 3 KB CSS,就是全 ...
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- 计算机网络(7)-----TCP协议概述
传输控制协议(Transmission Control Protocol) 概念 一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中,它 ...
- 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
随机推荐
- 嵌入式 ThriftServer in Spark
我们知道在Spark中可以通过start-thriftServer.sh 来启动ThriftServer,之后并可以通过beeline或者JDBC来连接并执行Spark SQL.在一般的Spark应用 ...
- NGUI发布后UI层看不见的解决办法
NGUI发布后UI层看不见的解决办法 提示信息:You can'tplace widgets on a layer different than the UIPanel that manages th ...
- C++基础 (9) 第九天 编译器对模板类的二次编译 类模板 自定义数组类
1 昨日回顾 2 编译器对于模板的二次编译 写一个模板函数 然后进行调用 g++ template.cpp -o template // 汇编 g++ -S template.cpp –o templ ...
- babel把ES6转化为ES5的时候报错
Module not found: Error: Can't resolve '@babel/runtime/helpers/asyncToGenerator' in 'e:\Node.js\Node ...
- [JSOI2018]战争(闵可夫斯基和)
害怕,可怜几何题 果然不会 题目就是说给你两个凸包,每次询问给你一个向量 \(c\) 问你能不能从两个凸包 \(A\) , \(B\) 里分别找到一个点 \(a\) , \(b\) 满足 \(a+c= ...
- Linux设备驱动--块设备(二)之相关结构体(转)
上回最后面介绍了相关数据结构,下面再详细介绍 块设备对象结构 block_device 内核用结构block_device实例代表一个块设备对象,如:整个硬盘或特定分区.如果该结构代表一个分区,则其成 ...
- 【hihocoder 1304】搜索一·24点
[题目链接]:http://hihocoder.com/problemset/problem/1304 [题意] [题解] 按照题目给的方法搜索就好; 那个方法很棒啊. 注意除0; 然后是浮点数的比较 ...
- hdu 2435dinic算法模板+最小割性质
hdu2435最大流最小割 2014-03-22 我来说两句 来源:hdu2435最大流最小割 收藏 我要投稿 2435 There is a war 题意: 给你一个有向图,其中可以有一条边是无敌的 ...
- C#--二维码生成代码
需要用到ThoughtWorks.QRCode.dll文件 string str = Server.UrlDecode(Request.QueryString["id"]); QR ...
- HDU 4354
思路是在看电视时突然想到的.枚举区间,然后按树形DP来选择最大值看是否满足条件.但枚举区间时的方法低效,看了题解,说枚举区间可以设两个指针逐步移动, 开始 l = r = 1, 记录已经出现的国家. ...
