• 网络概述


    tcp/ip:一个协议族,是一组不同层次上的多个协议的组合。通常被认为是一个四层协议系统。自顶向下包括应用层、运输层、网络层和链路层。

    链路层:通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。以太网协议应用于链路层上

    应用程序:通常是一个用户进程,而下三层则一般在操作系统内核中执行。尽管这不是必须的,但通常都是这样处理的,例如UNIX操作系统。

    网关:历史上的网关指的是路由器。现在网关这个术语只用来表示应用层网关,一个连接两种不同协议族的进程(例如TCP/IP和IBM的SNA),它为某个特定的应用程序服务(常常是电子邮件或文件传输)。

    网络层IP:提供的是一种不可靠的服务。TCP采用超时重传、发送和接收端到端的确认分组等机制在不可靠的ip层上提供了一个可靠的运输层。

    网桥:在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。TCP/IP倾向于使用路由器而不是网桥来连接网络。

    ICMP(Internet互联网控制报文协议):是ip协议的附属协议,ip层用它来与其他主机或路由器交换错误报文和其他重要信息。PingTraceroute这两个流行的诊断工具,都使用了ICMP

    IGMP(Internet组管理协议):它用来把一个UDP数据报多播到多个主机。

    ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,对32位的ip地址和48位的硬件地址进行映射。

    五类互联网地址:

    各类ip地址的范围:

    三类ip地址:

    1. 单播地址:目的为单个主机

    2. 广播地址:目的端为给定网络上的所有主机

    3. 多播地址:目的端为同一组内的所有主机

    当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。

    TCP传给IP的数据单元称作TCP报文段,IP传给网络接口层的数据单元称作IP数据报,通过以太网传输的比特流称作

    以太网数据帧的物理特性是其长度必须在46~1500字节之间。

    由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此IP在首部中存入一个长度为8bit的数值,称作协议域。1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。

    类似地,许多应用程序都可以使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。

    网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此以太网的帧首部也有一个16bit的帧类型域

    当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用

    后续学习TCP的细节时,我们将看到协议确实是通过目的端口号、源IP地址和源端口号进行解包的。

    端口号:

    TCP和UDP都使用16bit的端口号来识别应用程序。服务器使用知名端口号,客户端使用临时设定的端口号。

    服务器一般都是通过知名端口号来识别的。到1992年为止,知名端口号介于1~255之间

    256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务---也就是说,提供一些只有Unix系统才有的、而其他操作系统可能不提供的服务。

    客户端通常对它所使用的端口号不关心,只需保证该端口号在本机上是唯一的就可以了。

    客户端口号又称作临时端口号,这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机是开着的,其服务就运行。

    大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的(Internet上并不常用的服务)。

    大多数Unix系统的文件/etc/services都包含了人们熟知的端口号。

  • 相关阅读:
    Unable to lock the administration directory (/var/lib/dpkg/)解决办法
    Linux实训——搭建动态网站
    Linux实训——搭建HTTP服务器
    小程序学习视频教程
    数组的所有方法
    小程序组件封装步骤
    微信小程序生成图片学习
    小程序组件封装学习地址
    开发者在 onPageNotFound 回调中进行重定向处理onPageNotFound(Object)
    小程序中view的自定义属性获取
  • 原文地址:https://www.cnblogs.com/i-hard-working/p/10628924.html
Copyright © 2020-2023  润新知