zoukankan      html  css  js  c++  java
  • 网络协议

    C/S和B/S架构

    C:client(客户端)、S:server(服务端),比如电脑上装的QQ、微信

    B:browser(浏览器)、S:server(服务端),比如网页的淘宝、京东

    B/S架构本质也是C/S架构

    网络协议

    网络:网络连接介质+网络协议(osi七层)

    网络协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层

    osi七层协议:应用层/表示层/会话层/传输层/网络层/数据链路层/物理层

    五层协议:应用层/传输层/网络层/数据链路层/物理层

    物理层

    010101的电信号

    物理层的功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

    数据链路层

    数据链路层的功能:定义了电信号的分组方式,把物理层的电信号分组

    以太网协议

    以太网协议Ethernet

    • 一组电信号叫一个数据报/数据帧
    • 每一数据帧分为:报头head和数据data两部分

    报头head包含:(固定18字节)

    • 发送者/源地址:6个字节
    • 接收者/目标地址:6个字节
    • 数据类型:6个字节

    数据data包含:(最短46字节,最长1500自己)

    • 数据报的具体内容

    Mac地址

    发送者地址和接收者地址就是网卡地址,即Mac地址

    Mac地址:每块网卡都有一个唯一的Mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

    广播

    同一个局域网内通信,但会出现广播风暴

    网络层

    网络成的功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

    IP协议

    • 规定网络地址的协议叫IP协议,IP协议定义的地址称之为IP地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
    • 范围是0.0.0.0-255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6
    • 一个ip地址通常写成四段十进制数:如172.0.0.1

    ip地址分为两部分

    • 网络部分:标识子网
    • 主机部分:标识主机

    注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网

    子网掩码

    所谓“子网掩码”,就是标识子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0.

    通过子网编码和ip地址可以判断两个ip是否处在同一个网段,方式是将两个ip地址与子网掩码做按位与运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

    ARP协议

    广播的方式发送数据报,获取目标主机的Mac地址

    Mac地址学习:Mac地址和IP地址的映射表,第一次接收到就会在ip/mac映射表中添加一条数据。

    传输层

    传输层的功能:建立端口到端口的通信

    tcp协议

    三次握手,四次挥手

    三次握手

    四次挥手

    tcp连接可靠,因为发送过程中需要回执

    服务端如果看到大量的syn_rcvd状态,表示收到了dos和ddos攻击

    dos攻击:拒绝服务攻击,ddos攻击:分布式的拒绝服务攻击

    端口:端口范围0-65535,0-1023为系统占用端口

    udp协议

    不可靠连接,因为发送不需要响应

    应用层

    应用层的功能:规定应用数据的数据格式

    上网流程分析

    以www.baidu.com为例

    1. 在浏览器输入www.baidu.com
    2. 会取dns服务器通过域名解析成ip地址
    3. 向ip+端口号这个地址发送请求,就会访问到百度的服务器

    socket

    在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,已实现进程在网络中通信

  • 相关阅读:
    codeforces 872 D. Something with XOR Queries(思维)
    hihocoder #1609 : 数组分拆II(思维)
    hihocoder #1608 : Jerry的奶酪(状压dp)
    lightoj 1126
    SpringBoot Controller接收参数的几种常用方式
    mysql恢复备份数据时,部分表数据丢失的问题
    Tomcat证书安装(pfx和jks)
    Java 数据返回接口封装
    Java RSA 公钥加密私钥解密
    Redis连接池
  • 原文地址:https://www.cnblogs.com/yunluo/p/11467016.html
Copyright © 2011-2022 走看看