0%

系列回顾

Application Layer 应用层

应用层是整个网络模型中最靠近用户, 常用的协议有 HTTP, FTP/SFTP, SMTP等等. 比如说浏览器, 市面上有很多很多浏览器, 常见的有 Chrome, Firefox, Safari, Edge等等, 服务器有 nginx, apache, tomcat 等等, 但是无论一个网站的后端使用什么样的服务器, 用户使用什么样的浏览器, 数据都能被正确解读, 这是为什么呢? 那是因为服务器和浏览器都采用了同一个协议, 叫 HTTP 协议.

对于应用层来说, 它的数据也需要被封装到底层. 对于不同的协议, 数据包的格式/字段可能会不一样, 但是对于底层的协议来说, 并不care. 它们要做的就是把应用层的数据包封装到data payload里面, 然后传输到相应的网络节点.

Read more »

系列回顾

Transport Layer 传输层

传输层在整个网络模型中非常重要, 它对于很多网络可靠性的功能负责, 包括但不限于Multiplexing traffic和demultiplexing traffic.

简单来说, multiplexing 指的是, 一个网络节点能够传送数据到不同的接收端; demultiplexing 就是反过来.

Read more »

系列回顾

IP 地址

IP地址长度为4bytes, 也就是32bit. 一个IPV4的地址有4个octet组成, 通常来说, 每一位有10进制数字组成. 与MAC地址不同的是, IP地址通常有网络公司进行分配. 举个例子来说, IBM拥有所有以 9 开头的IP地址. 所以, 当数据包需要被传送到 9.0.0.1的之后, 数据只需要被送到IBM公司其中一个路由就可以了. IBM公司的路由就会接管.

另外一个很重要的知识点就是, IP地址与硬件无关. 所以, 一台设备连接至不同网络的时候, IP地址会变, 但是MAC地址永远不变. 当一个设备连接到网络时, 通常来说, IP会被自动分配. 这种通过DHCP技术获得的IP, 叫做动态IP, 相应的, 如果如要手动设置的IP, 这种IP叫做静态IP.

IP 地址本身也被分成两部分: 第一部分叫做 Network ID, 第二部分叫做 Host ID.

Read more »

系列回顾

Ethernet 与 MAC 地址

目前, 用于网络之间通信的最常用协议, 叫 Ethernet. Data Link层抽象了 Physical层, 模型中更高级的层可以获取他们需要的Physical层的信息. 对于Data Link层来说, 它的责任是保证模型中的 Network层, Transport层和Application层, 可以同时工作, 而不用关心设备于网络是怎样连接的.

Read more »

TCP/IP 五层模型

如果说要理解计算机网络, 那么我们需要理解很多的细节, 理解参与网络的每一个部分. 最基础的部分, 就是计算机网络模型. 这个世界上有很多类型的网络模型, 他们都大同小异, 这里主要讲讲TCP/IP的五层模型.

首先, 需要定义一下这个五层模型到底是什么样的.

从上到下, 分别是 Application, Transport, Network, Data LinkPhysical. 越接近底层, 越靠近硬件.

Read more »

Django 自带的 User 类就已经帮我们实现了用户的注册和登陆的基本功能. 可是, 这个类只包含了 username, first_name, last_name, email 这4个基础字段, 且first_name, last_name, 和email字段都是非必填的. 如果我们需要User表里面有更多的字段, 那么我们可以自己来拓展 Django这个类.

Read more »