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

    一、互联网协议:

    英语是世界所有人通信的唯一标准,internet实际就是计算机之间一系列统一的标准。而这一些列标准就是互联网协议。互联网的本质就是一系列协议。

    二、互联网协议按照功能不同细分为osi七层或tcp/ip五层,或tcp/ip四层,我们需要掌握五层的原理就够了。

         

    五层协议对应的物理设备:

     

    三、五层模型及对应协议:

    1. 物理层:

    定义:计算机之间必须靠光纤等完成组网(即连接)

    物理层功能:主要是通过物理层发送或接受高低电频(电信号)

     

    1. 数据链路层:

    定义:单纯的电信号是没有意义的,必须对一串高低电频进行分组,每组代表  什么意思。

    实现功能:定义了电信号的分组方式。

    以太网协议:一个统一的分组标准。

    一个数据报(帧)分为:head(固定长度18个字节)、data(最短46个字节、 最长1500个字节,data部分是数据的具体内容。)

    head 18个字节中包含:源地址6个字节、目标地址6个字节、数据类型6                      字节.

    mac地址:即网卡地址(独一无二),上面说的目标地址、源地址都是mac地址。

    广播:有了mac地址,同一局域网中的计算机就能实现通信(有了数据链路层就   有了mac地址,就能实现局域网内通信)

    有了以太网协议:就能在同一个局域网内以广播的方式进行通信。

     

    1. 网络层:(世界上所有计算机光靠mac地址通信,会造成广播风暴。。。)

    定义:由于广播风暴,所以必须划分局域。

    功能:引入一套新的地址来区分不同的广播域/子网

    IP协议:规定网络地址的协议叫IP协议,它定义的地址称IP地址。

    1.32位(4个字节)二进制,范围:0.0.0.0-255.255.255.255

    一个IP地址通常携程四段十进制数,如:172.168.10.1

    2.IP地址分为两部分:

    网络部分:标识子网

    主机部分:标识主机

    注意一个单纯的IP地址段只是标识了IP地址的种类,无法确定所属的子网。

    如:172.16.10.1172.16.10.2并不能确定二者处于同一子网。

    3.子网掩码:它的网络部分全部为1,主机部分全部为0

    知道子网掩码,我们就能判断任意两个IP地址是否处于同一个子网络,方法 是将两个IP地址与子网掩码分别进行AND运算(两个对应数位都为一,结果 1,否则为0),如果运算结果相同,就表明在同一个子网。

    4.IP数据包:(分headdata

    IP协议的作用:

    1. 为每一台计算分配一个IP地址。
    2. 确定哪些地址是在一个子网。

    ARP协议:广播的方式发送数据包,获取目标主机的mac地址。

    通信是基于mac地址的广播方式实现的,但是 计算机在发包时,获取自己的 mac地址是容易的,但是获取对方的mac就需要用到ARP协议。

     

    通过IP地址和子网掩码区分自己所属的子网, 如果在相同子网,通过ARP协议返回目标计算机mac地址,如果不在相同子网,通过ARP协议返回目标网关mac地址。

     

    4.传输层:网络层的IP协议的IP能帮我们区分子网,数据链路层的以太网协议mac地址能帮我们找到主机。但是需要定位传输层来定位主机上的应用程序。

    端口即应用程序与网卡关联的编号。

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

    TCP协议:提供一种可靠的、确保数据不丢失不乱序的、端到端的传输。

    TCP协议的三次握手与四次挥手

     

     

    5.应用层

    功能:固定应用程序的数据格式。

    四、Socket

    Socket是在应用层与传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象成几个简单的接口,封装在一个类中,共应用层调用实现进程在网络中的通信。

    我们可以通过ip地址+TCP协议+端口号(端口号是应用程序与mac地址关联的编号)来唯一标识网络中的一个进程。

    然后我们就能够利用socket进行通信了。

  • 相关阅读:
    T4 (Text Template Transformation Toolkit)
    GUI Design Studio
    51劳有所获 54务实青年
    [书目20110502]把时间当作朋友
    Rdlc子报表的动态添加
    [转]更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题
    JSON
    javascript 特征侦测技术
    IE的setAttribute bug
    将"类数组对象"转换成数组对象
  • 原文地址:https://www.cnblogs.com/yu-931017/p/10178894.html
Copyright © 2011-2022 走看看