socket编程之一:计算机网络基础

在开始学习网络之前先复习下计算机网络基础吧。

鲁迅说,天下文章一大抄,看你会炒不会炒,基础知识就抄抄书吧。

一 分层模型

1 为什么分层

为了简化网络设计的复杂性,通讯协议采用分层结构,各层协议之间既相互独立又相互高效的协调工作。

对于复杂的通信协议,其结构应该是采用层次的。分层的协议可以带来很多便利:

分层的好处有:

a> 灵活性好:当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。

此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,甚至可以将这层取消,更容易管理。

b> 各层之间是独立的:在各层间标准化接口,允许不同的产品只提供各层功能的一部分,某一层不需要知道它的下一层是如何实现的,

而仅仅需要知道该层通过层间的接口所提供的服务。由于每一层只实现一种相对独立的功能,所以比较容易实现!

2 分层

标准七层结构和实用五层结构

socket具体对应那的应该是运输层和网络层。

二 socket简介

socket即套接字。最原始的socket是继承unix系统中,后来微软推出了winsocket。

socket编程会中涉及到一些地址,端口,字节序等概念,最好是了解下。

这里就直接说socket建立连接的过程了,如图:

大致分为三个大的步骤:

1 服务端监听

2 客户端请求连接

3 连接确认

下一节在详细的说具体的连接步骤吧。

socket编程之一:计算机网络基础,布布扣,bubuko.com

时间: 2024-10-10 17:40:21

socket编程之一:计算机网络基础的相关文章

C语言Socket编程(计算机网络作业)

最近我计算机网络课程要做作业了,没办法跟着老师一步一步的写C语言的代码,使用的计算就是Socket通信发送消息:代码实现的功能很简单,客户端向服务器端发送消息,服务器端接收客户端发来的消息,并且输出显示到屏幕上:代码中的每个方法的返回值都应该做判断出错情况,以保证程序的稳定性,这里只是测试代码. 老师是录制的视频讲解的,其他其中使用的到的方法要求我们自己去查相关的MSDN资料库,如果有不懂的,就自己上网查. 服务器端接收代码: #include <Winsock2.h>#pragma comm

VII Python(9)socket编程

socket编程: 网络基础: TCP/IP: socket模型: python socket C/S开发: 非阻塞(select.poll.epoll) 网络基础: OSI七层协议.TCP/IP分层 注: 物理层(数据之间比特流的传输.物理接口.电气特性:硬件接口标准,如RJ45水晶头.无线网络传输802.11b等): 数据链路层(组帧,进行硬件地址寻址,差错校验等功能:ARP.RARP:单个链路上数据的传输,如传输依赖的是光纤.双绞线.还是无线等方式): 网络层(进行逻辑地址寻址,实现不同网

java socket编程基础(转)

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

你得学会并且学得会的Socket编程基础知识

这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解. 本文源代码,可以通过这里下载 http://files.cnblogs.com/chenxizhang/SocketWorkshop.rar 第一步:创建解决方案 第二步:创建服务端程序 这里可以选择“Console Application”这个类型,比较方便调试 然后编写如下代码,实现服务器的基本功能 using System; using System.Coll

python基础之socket编程

python基础之socket编程   一 TCP/IP五层模型 在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的. 在每一层实现的协议也各不同,即每一层的服务也不同.下图列出了每层主要的协议. 各层功能 注明:ARP和RAPR两个到底属于哪一层呢? 由于IP协议使用了ARP协议,所以经常把ARP协议划到网络层,但是ARP协议是为了从网络层使用的IP地址解析出在数据链路层使用的MAC地址,所以有些地方也把ARP协议划分到数据链路层,但是一般情况下

socket编程基础2

包含头文件<sys/socket.h> 功能:创建一个套接字用于通信 原型 int socket(int domain, int type, int protocol); 参数 domain :指定通信协议族(protocol family) type:指定socket类型,流式套接字SOCK_STREAM,数据报套接字SOCK_DGRAM,原始套接字SOCK_RAW protocol :协议类型 返回值:成功返回非负整数, 它与文件描述符类似,我们把它称为套接口描述字,简称套接字.失败返回-

socket编程基础3

服务器端尽可能使用RUSEADDR. 在绑定之前尽可能调用setsockopt来设置SO_REUSEADDR套接字选项. 使用SO_REUSEADDR选项可以使得不必等待TIME_WAIT状态消失就可以重启服务器. fork()产生一个进程来处理客户端与服务器端之间的消息.父进程保持监听状态连接.accept返回多个已连接套接字! echocli.c #include <unistd.h> #include <sys/types.h> #include <sys/socket

Java从零开始学四十五(Socket编程基础)

一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 &amp; Socket编程基础)

FTP作业 本节内容: 面向对象高级语法部分 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 参考:http://www.cnblogs.com/wupeiqi/p/4766801.html metaclass 详解文章:http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python 得票最高那个答案写的非常好 Socket 编程 参考:http://www.cnblogs.co