网络编程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的主要内容,如果未能解决你的问题,请参考以下文章