网络协议

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命令直接实现三次握手;

posted @ 2016-09-01 14:38  hazhade  阅读(135)  评论(0编辑  收藏  举报