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

    http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

    互联网协议:

      实体层:把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号;

      链接层:确定了0和1的分组方式;

        MAC地址:网卡的地址,就是数据包的发送地址和接收地址;

        以太网协议:包含mac地址

      网络层:建立"主机到主机"的通信;作用是引进一套新的地址,区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址";   

        MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起;

        IP协议:规定网络地址的协议,它所定义的地址,就被称为IP地址;

          子网掩码:用于判断两个网络是否在同一个子网下。

          IP数据包:根据IP协议发送的数据,其中必定包括IP地址信息;

          把IP数据包直接放进以太网数据包的"数据"部分;(分层对好处:上层的变动完全不涉及下层的结构)

        ARP协议:得到同一个子网络内的主机MAC地址

      传输层:建立"端口到端口"的通信;

        端口:每一个使用网卡的程序的编号,用于识别程序;是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023    的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系;

        UDP协议:在数据前面,加上端口号;

        TCP协议:有确认机制的UDP协议,每发出一个数据包都要求确认;

        TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分;

      应用层:应用程序收到"传输层"的数据,接下来就要进行解读;规定应用程序的数据格式;

      数据的传递:网络通信就是交换数据包;

        MAC地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的MAC地址,必须通过网关(gateway)转发;

        静态IP地址上网:计算机每次开机,都会分到同样的IP地址;

        动态IP地址:计算机开机后,会自动分配到一个IP地址;使用的协议叫做DHCP协议;

          DHCP协议:一种应用层协议,建立在UDP协议之上;每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器"。新的计算机加      入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址和相关的网络参数;

        DNS协议:帮助我们将网址转换成IP地址;

        http:浏览网页用的是HTTP协议;HTTP端口默认是80;发送方(本机)的端口是一个随机生成的1024-65535之间的整数;

    TCP/UDP:

    (1)连接方式

    TCP:需要建立连接,形成传输数据的通道
    UDP:不需要建立连接,将数据源和目的封装成数据包中

    (2)数据传输的大小
    TCP:数据大小不收限制,在连接中进行大数据传输
    UDP:每个数据报的大小限制在64K之内

    (3)安全性
    TCP:通过三次握手完成连接,因此是可靠协议,安全送达
    UDP:因为无需连接,因此是不可靠协议

    (4)效率性
    TCP:必须需要建立连接,所以效率稍微会低些
    UDP:不需要建立连接,速度快

    iOS一般使用GCDAsyncSocket库可以轻松实现,

    GCDAsyncSocket的connect命令直接实现三次握手;

  • 相关阅读:
    时间复杂度的分析
    插入排序
    maven中jar、war、pom的区别
    Maven属性(properties)标签的使用
    超级POM
    maven 常用命令
    Maven Pom文件标签详解
    maven 查找依赖的办法
    maven snapshot和release版本的区别
    maven pom文件标签含义
  • 原文地址:https://www.cnblogs.com/hazhede/p/5829786.html
Copyright © 2011-2022 走看看