网络编程socket

网络编程

  网络编程通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介仙湖链接组成的

  编写基于网络的应用程序的过程称之为网络编程

  学习网络编程就是要学习利用网络来与另一台计算机相互传输数据,开发出支持网络通讯的应用程序

 

C/S构架

  提供数据的一方称之为服务器(Server)

  访问数据的一方称之为客户端(Client)

  浏览器也可以访问服务器上的网页数据,称之为B/S,其本质上也是C/S只不过客户端是浏览器

 

网络通讯的基本要素

  两台计算机的想要通讯必须要具备两个基本要素

  1 物理连接介质,包括网线,无线网,光纤等

  2 通讯协议

 

通讯协议

  协议就是标准,大家遵循相同的标准才能正常交流通讯

  作为应用程序开发者,物理介质不需要我们关心,通讯协议才是我们学习的重点

  OSI 七层模型

  应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

  五层:应用层,传输层,网络层,数据链路层,物理层

  四层:应用层,传输层,网络层,网络接口层

  为了降低学习整个通讯流程的复杂度,将其简化为五层,四层

  其中五层是我们学习的重点

  一、物理层    就是物理介质

  二、数据链路层

    以太网协议(Ethernet)工作在数据链路层,其规定了电信号分组的方式以及电信号应该包含的内容

    ethernet规定:

    一组电信号构成一个数据包,叫做帧;

    每一数据帧分为:报头和数据data两部分

      head包含(固定18个字节)

        发送者/源地址,6个字节

        接收者/目标地址,6个字节

        数据类型(标签+以太网型),6个字节

      data包含:(最短46个字节,最长1500字节)

        数据包的具体内容

    head长度+data长度最短64字节,最长1518字节,超过最大限制就分片发送

    MAC地址

      每块网卡出厂时有世界上唯一的mac地址,长度为48位二进制

  三、网络层 

    ip协议是工作在网络层的协议,全称internet protocol address翻译为互联网协议地址

    ip协议的地址称之为ip地址,广泛应用的v4版本即ipv4,规定网络地址由32位二进制表示

    范围 0.0.0.0 - 255.255.255.255

    一个ip地址通常写成四段十进制,前三位网络号标识子网,最后一位主机号标识主机

 

************************************笔记*************************************************************

网络编程

  开发基于网络的应用程序

通讯的两个要素

  1.物理连接介质

    网线 wifi 光纤

  2.通讯协议

    指的是发送方与接收方共同定制的一套规范

CS构架

  客户端 和 服务器

  提供数据的一方称之为服务器

  访问数据的一方称之为客户端

OSI七层模型

  开放式系统互联通信参考模型

  应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

  五层模型

  应用层,传输层,网络层,数据链路层,物理层

  四层模型

  应用层,传输层,网络层,网络接口层

  

  物理层:负责用于规范物理连接介质的协议

    虽然可以传输二进制

    问题是:对方不知道二进制到底有什么含义

  数据链路层

    工作在这一层的是以太网协议

    1.规定一组电信号由多少位组成

    2.一组电信号分为head和data

    3.每一台计算机必须具备一个网卡

      网卡上有一个全球范围内唯一的mac地址

    4.采用广播的方式来查找对方计算机

  网络层

    工作在这一层的是IP协议 网络地址协议

    每一台计算机必须拥有一个IP地址

    IPV4 4位十进制 0.0.0.0-255.255.255.255

    前三段用于区分网络号

    后一段用于主机号

    子网掩码:判断两个ip是否属于同一局域网

    路由协议:用于选择出一条最短的传输路径

    arp协议:通过ip地址获取地方MAC

    ip地址分为 a,b,c,d,e
    可以通过ip定位到全球范围内的某个局域网中的某一台计算机

  传输层

    规定每一个应用程序都必须拥有一个端口号

    TCP协议:可靠传输协议,速度慢每次都要等待确认信息完整

        三次握手:确认传输通道是可用的

        四次挥手:确认数据传输全部完毕

    UDP协议:不可靠传输协议

        把数据发送到网络就结束,不关心对方是否接收到

        效率高

  应用层

    是由c和s双方共同商量确定的数据结构

 

socket

  内部封装了传输层一堆协议,留下简单的调用接口

  调用socket提供接口就可以完成网络通讯

  并且不需要关心协议内容

  提高开发效率

    

posted @ 2019-03-01 16:36  linchengcheng  阅读(184)  评论(0编辑  收藏  举报