zoukankan      html  css  js  c++  java
  • 网络编程socket

    网络编程:

      指的是计算机中的互联网,是由多台计算机通过网线或者其他链接组成的

      编写基于网络的应用程序,这一过程就称为网络编程

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

    C/S架构

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

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

    网络通讯协议的两个基本要素:1.物理连接介质,比如网线,无线网等等。 2.通讯协议

    socket层

    socket层位于应用层和传输层中间的位置。socket是一组接口,在设计模式中,socket就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说,一堆简单的接口就是全部。(就是socket内部封装了一堆协议,留下简单的调用接口)

    socket其实就是为我们封装好了TCP/IP协议,我们只需要去遵循socket的规定去写就可以了,写出的程序自然就会遵循TCP/IP的标准(直接调用socket提供的接口就能完成网络通讯,不需要关心协议内容)

    OSI七层模型:

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

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

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

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

    一、物理层 就是物理介质

    二、数据链路层

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

    ethernet规定:

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

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

      head包含(固定18个字节)

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

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

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

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

    数据包的具体内容:

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

        MAC地址:每块网卡出厂都有全球唯一的MAC地址,长度为48位二进制

    三、网络层

    IP协议是工作在网络层的协议,IP地址规定网络地址由32位二进制表示,范围0.0.0.0-255.255.255.255

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

    四、TCP/IP与UDP的比较

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

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

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

    UDP协议:不可靠的传输协议

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

      UDP效率高于TCP/IP

    应用层:是由接收方和发送方共同商量确定的数据结构

  • 相关阅读:
    [Tutorial] How to check and kill running processes in Ubuntu
    [Tutorial] Getting started with Gazebo in ROS
    Linux基础命令
    Linux安装系统
    vue 前后端数据交互问题解决
    如何在cmd中启动MongoDB服务器和客户端
    selenuim模块的使用 解析库
    beautifhulsoup4的使用
    浅谈scrapy框架安装使用
    自动登录 点赞 评论 抽屉网
  • 原文地址:https://www.cnblogs.com/zhangzhechun/p/10461415.html
Copyright © 2011-2022 走看看