网络编程socket

Posted zhangzhechun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程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

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

 

以上是关于网络编程socket的主要内容,如果未能解决你的问题,请参考以下文章

Socket网络编程

socket 网络编程

02 Socket网络编程

socket网络编程

Socket网络编程

python网络编程2--socket