zoukankan      html  css  js  c++  java
  • 网络基础

    什么是互联网协议及为何要有互联网协议

    互联网协议

    互联网的本质就是一系列网络协议,互联网协议就是让孤立的计算机能够互相沟通联系。英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为'互联网协议'(Internet Protocol Suite)

    为何要有互联网协议

    能让孤立的计算机之间互相联系,方便信息的交流和传输,所以要有互联网协议

    osi五层模型

    • 物理层:(Physical Layer)物理层即为将电脑连接起来的光缆,电线等。把电脑用物理手段连接起来。主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。
    • 数据链路层:(Data Link Layer)是OSI参考模型第二层,位于物理层与网络层之间。在广播式多路访问链路中(局域网),由于可能存在介质争用,它还可以细分成介质访问控制(MAC)子层和逻辑链路控制(LLC)子层,介质访问控制(MAC)子层专职处理介质访问的争用与冲突问题  定义了电信号的分组方式

    • 网络层:(Network Layer)是OSI模型中的第三层(TCP/IP模型中的网际层)。网络层提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力。由于TCP/IP协议体系中的网络层功能由IP协议规定和实现,故又称IP层。
    • 传输层:(transport layer)互联网协议包与开放系统互连(OSI)网络堆栈中协议的分层结构中的方法的一个概念划分。该层的协议为应用进程提供端到端的通信服务。[1] 它提供面向连接的数据流支持、可靠性、流量控制、多路复用等服务。
    • 应用层:(Application layer)是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向第六层表示层发出请求

    用户上网流程

    1.本机获取

    • 本机的IP地址:192.168.1.100
    • 子网掩码:255.255.255.0
    • 网关的IP地址:192.168.1.1
    • DNS的IP地址:8.8.8.8

    2.打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

    www.google.com.
    .根域
    com 顶级域
    google 二级域
    www 主机名

    先通过本机的dns解析--》然后13台跟服务器 -->跟服务告诉本地需要找--》com dns 服务器---》
    递归查询
    递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
    迭代查询
    DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果
    为止。

    3.dns协议(基于udp协议)

    4.HTTP部分

    6 IP协议

    然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。

    IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

    7 以太网协议

    最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。

    以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

    8 服务器端响应

    经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。

    根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。

    本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信

    9 把ip与子网掩码进行与运算 判断是否在一个网段中,IP结果相同就是在一个网段中 否则不是

    http --->以什么协议封装自己的程序(应用层)---》TCP 源端口,目标端口 80---》IP 协议 详细信息里面 源ip 目标ip---》ethernet-->

    1. 网络=物理连接介质+互联网协议

    2.互联网协议就是一系列的标准

    3.五层协议

    物理层:传递电信号

    数据链路层:电信号的分组,ethernet   数据包/帧 以广播的工作方式 mac   arp协议 

    网络层:ip 协议 标识一个子网 

    传输层:tcp/udp 基于端口工作的协议,标识一台机器上唯一一个应用程序

    应用层:HTTP 用户自己定义的协议

    sock层位于应用层和传输层中间 把tcp/udp封装起来 为开发人员提供简单接口

     

    三次握手四次白白

    c->s
    syn=1 seq=x

    s->c
    ack=1 seq=x+1

    syn=1 seq=y

    c->s
    ack=1 seq=y+1

  • 相关阅读:
    web开发之mysql优化总结
    使用webpack构建属于你自己的npm包
    jwt在node中的应用与实践
    zookeeper启动失败解决办法(3.5.7)
    oracle表分区详解
    oracle job
    ORACLE恢复误删的表数据
    go mod使用 踏雪扬尘
    sparkcore 学习 踏雪扬尘
    GO语言基本知识 踏雪扬尘
  • 原文地址:https://www.cnblogs.com/morgana/p/6889582.html
Copyright © 2011-2022 走看看