zoukankan      html  css  js  c++  java
  • 因特网协议栈、协议模型

    为什么协议分层

    协议分层是为了提供一种结构化的方式来讨论系统组件。
    各层只负责自己份内的事情即可,而不用关心其他层的升级更新等操作,各层只需对外提供统一的接口即可。
    各层的所有协议成为协议栈protocol stack。

    因特网协议栈

    比如下面五层(应用层、传输层、网络层、链路层、物理层)是一个协议栈,而OSI的7个层也是一个协议栈。

    应用层

    应用层是网络应用程序以及他们的应用层协议。
    代表性协议有HTTP、FTP、DNS
    应用层的分组称为报文mesage

    传输层

    传输层在应用程序端点之间传送应用层报文
    有两种协议TCP、UDP
    传输层的分组称为报文段segment

    网络层

    网络层负责通过一系列路由器路由数据报到目的主机
    代表性协议IP
    网络层的分组称为数据报datagram

    链路层

    链路层接收从网络层下传的数据报并沿路径传给下一节点
    代表性协议以太网、WLAN、电缆接入网的DOCSIS协议
    链路层的分组称为

    物理层

    物理层负责移动比特
    本层协议仍是与链路相关,但与实际传输媒介相关(比如有关双绞线、光纤的协议)
    物理层移动比特

    分组=头部+(相对)有效载荷字段payload field

    数据在应用层封装成报文
    应用层报文 + 传输层头部 = 传输层报文段
    传输层报文段 + 网络层头部 = 网络层数据报
    网络层数据报 + 链路层头部 = 链路层帧
    链路层帧 + 吭,不用加了,物理层是最底层

    数据在经过每个网络设备的时候就会将数据分组拆解到该网络设备所在的层,然后校验重新封装再发送。

    应用层报文:application-layer message
    传输层报文段:transport-layer segment
    网络层数据报:network-layer datagram
    链路层帧:link-layer frame

    OSI开放互连模型

    OSI开放互连模型于20世纪70年代成型。相比因特网协议栈,在应用层和网络层中多了表示层、会话层

    ==表示层:==使应用程序能够解释交换数据的含义
    ==会话层:==数据交换的定界和同步功能

    而因因特网协议栈缺少这两个层所引发的问题就交给应用开发者来解决好了,他们才是决定这些层有没有用的实际操作者。

    网络攻击

    Dos(Denial-of-Service attack)称为拒绝服务攻击,方式有以下几种:

    弱点攻击:给容易受攻击的应用程序发送特制的报文,按一定次序发可能会导致该应用程序奔溃。
    带宽泛洪:发送大量的分组以阻塞链路。
    连接泛洪:产生大量半连接以消耗服务器资源。

    而事实上单一源产生的攻击很容易就会被发现并过滤。所以有了后来的DDos(Distrbuted Dos),这种攻击隐蔽性高,效果明显,不容易被发现。

    网络通信

    1、进行通信的是进程(process)而不是程序。
    2、同一个端系统间的通信由操作系统决定。
    3、不同端系统间的进程通过网络交换报文而相互通信。
    4、进程通过套接字(socket)的软件接口了收发报文。
    5、套接字是同一端系统应用层和传输层之间的接口,是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络间的应用程序编程接口(Application Programming Interface)API

    进程寻址 发送数据需要指定目的主机地址(IP)和套接字地址(端口号)。
    非持续性连接 non-prosistent connection 多个请求分别使用TCP进行传输。
    持续性链接 prosistent connection(默认) 多个请求共用一个TCP进行传输。
    客户端请求文件到收到文件的时间:即一个短分组从客服端到服务器再返回客户端所花费的时间称为Round-Trip Time,RTT

    TCP的加强版Secure Sockets Layer,SSL是在应用层上实现的,也就是在TCP在将报文推向套接字之前进行加密,接收之后再解密。

    HTTP是一个无状态协议statusless protocol,不存储客户端的状态信息,所以后来为了需求产生了cookie这个东西。
    cookie存在于:
    1、响应报文首部行
    2、请求报文首部行
    3、用户端系统文件
    4、服务器数据库

    待续。

  • 相关阅读:
    把程序的定义与实现部分用头文件与源文件分开
    简单控件的应用(二)—学生管理系统
    Java基础14
    创建插入符、输出不同效果的文字
    Java基础12
    简单控件的应用(一)—prj计算器
    简单的Win 32 Application
    最简单的音乐播放器
    消息处理初步
    基于MFC,在非客户区与客户区利用CButon类创建button
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/12694396.html
Copyright © 2011-2022 走看看