网络编程

网络编程并发编程面试题

泄露秘密 提交于 2020-02-07 23:47:48
网络编程,并发编程 面试题1. 简述 OSI 七层协议。应用层与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。表示层这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。会话层它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。传输层这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。网络层这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址

基础 | 网络编程

╄→尐↘猪︶ㄣ 提交于 2020-02-07 07:16:57
一、计算机网络的相关概念 1.计算机网络 通过传输介质、网络协议和通信设施,将分散在不同位置的计算机互连,实现资源共享和数据传输的系统。 计算机网络的功能: 1.资源共享 2.信息传输与集中处理 3.均衡负荷与分布处理 4.综合信息服务 2.网络编程 又称Socket编程,是指在操作系统,网络管理软件,网络通信协议的管理和协调下,使用计算机编程语言来实现计算机之间的资源共享和信息传递。 二、计算机网络的三要素: 1.IP地址 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。指的是计算机在网络中的唯一标识,IP地址的长度为32个比特位(4字节),一般用“点分十进制”表示。 分类 首字节开始位 首字节数值范围 网络格式地址 最大网络个数 每个网络最多主机个数 A类 0 0-127 网络.主机.主机.主机 127 16777214 B类 10 128-191 网络.网络.主机.主机 16384 65534 C类 110 192-223 网络.网络.网络.主机 2097152 254 D类 1110 224-239 用于在 IP 网络中的组播,不再分配 E类 1111 240-255 保留作研究之用,不再分配 2.端口号: 端口号用于标识进程的逻辑地址;其有效端口的范围是从 0到65535,其中 0-1024 系统使用或保留端口。注意

网络编程之 OSI七层协议

孤人 提交于 2020-02-07 03:49:00
内容目录: 1.软件开发架构 2.OSI七层协议 3.每层协议介绍 1.软件开发架构 c/s架构: c:客户端 s:服务端 b/s架构: b:浏览器 s:服务器 本质:b/s其实也是c/s 2.OSI七层协议 3.各层介绍 3.1 物理层 规定计算机之间物理连接方式,传输的数据都是 0,1 二进制的电信号 3.2 数据链路层("以太网协议"!) 1.规定了二进制数据的分组方式 2.规定了只要是接入物联网的计算机,都必须有一块网卡! 网卡上面刻有世界唯一的编号: 每块网卡出厂时都被烧制上一个世界唯一的mac地址, 长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号) 管网卡上刻有的编号叫电脑的mac地址 ----->上面的两个规定其实就是 "以太网协议"! 基于以太网协议通信:通信基本靠吼(一对多广播形式) 弊端:容易产生广播风暴 交换机:如果没有交换机,你的电脑就变成了马蜂窝,有了交换机之后, 所有的电脑只需要有一个网卡连接交换机,即可实现多台电脑之间物理连接 3.3 网络层(IP协议) 规定了计算机都必须有一个ip地址 ip地址特点:点分十进制 有两个版本ipv4和ipv6 为了能够兼容更多的计算机 最小:0.0.0.0 最大:255.255.255.255 IP协议可以跨局域网传输 ip地址能够唯一标识互联网中独一无二的一台机器! 3.4 传输层

网络编程 OSI七层协议

一笑奈何 提交于 2020-02-07 03:03:36
一.网络编程   1、软件开发架构   c/s架构     c:客户端(client)     s:服务端(service) 对外一直提供服务,稳定运行   b/s架构     b:浏览器(browser)     s:服务器(service) 手机端:好像C/S架构比较火,其实不然,微信小程序,支付宝第三方接口      统一接口! pc端:b/s比较火      本质:b/s其实也是c/s   2、学习网络编程能做什么?   网络编程 >>> 开发cs架构的软件   并发编程,前端,数据库,框架 >>> 开发bs架构的软件 3. 如何实现远程沟通交流?   电话插电话线   电脑插网线   笔记本电脑无线网卡   要想实现远程通信,第一个需要具备的条件就是:物理连接介质 不同国家的人交流需要有一个公共的语言作为媒介 >>> 英文 计算机于计算机要想实现远程通信,光有物理连接介质是不够, 他们也需要一个共同的标准 >>> 协议 二.OSI七层协议(模型)   互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层   每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件      每层运行常见物理设备 1、物理连接层:   实现计算机之间物理连接,传输的数据都是01010的二进制   电信号工作原理:电只有高低电平 2、数据链路层(" 以太网协议

网络编程

戏子无情 提交于 2020-02-07 02:22:56
面向对象:什么是类?类最重要的部分? 1.一系列属性和方法的集合体(一个类就是一个功能) 2.类的继承与封装 对象属性和方法查找 反射 自我学习方法 1.养成看源码的习惯 2.遇到问题的做法(给自己规定一个解决问题的时间) 1.先自行百度/谷歌 2.1不行的时候问同学 3.1,2都不可以的时候问老师 3.养成自我解决问题的能力 看官方文档,照着文档实例敲一遍代码 4.不会的问题多截图,可以加上自己对该知识点的理解! 网络编程 软件开发架构 c/s架构 c:客户端 s:服务端 b/s架构 b:浏览器 s:服务器 手机端:好像是c/s架构比较火,但是并不是,尤其是这几年b/s架构逐渐回升,比如微信小程序,支付宝第三方接口 这样做的目的是:统一接口,拉到客户!! pc端:b/s架构比较火 本质上:b/s其实也是c/s 服务端的特点:24小时不间断提供服务,谁来就给谁提供服务 客户端特点:想体验服务的时候就去找服务端体验服务 学习网络编程可以干什么 >>>>>>>> 开发cs架构的软件 学习并发编程,前端,数据库,框架 >>>>>>>开发bs架构的软件 网络变成起源:美国军事(所有的技术都是从军事起源) 想实现远程的数据传输 如何实现远程沟通交流? 狼烟 ... 电话插电话线 大屁股电脑插网线 笔记本电脑的无线网卡 要想实现远程通信,第一个需要具备的条件就是:物理连接介质

DAY 30 网络编程基础

我的未来我决定 提交于 2020-02-07 01:13:35
一.软件开发架构   1.c/s架构    c:客户端    s:服务端   2.b/s架构    b:浏览器    c:服务器   手机端:好像C/S架构比较火,其实不然,微信小程序、支付宝第三方接口   B/S架构的优点是统一接口   PC端:B/S架构比较火   本质:B/S其实也是C/S   服务端:24小时不间断提供服务,谁来我就服务谁。   客户端:想体验服务的时候,就去找服务端体验服务 二.网络编程介绍   1.学习网络编程 -->>> 可以开发C/S架构的软件    并发编程、前端、数据库、框架 -->>> 可以开发B/S架构的软件    网络编程起源于美国军事,主要是实现远程数据的传输   2.如何实现远程通信    第一个需要具备的条件就是:物理连接介质    第二计算机与计算机想要实现远程通信,还需要一个共同的标准---协议   3.OSI七层协议(模型)    OSI七层协议 我们只需要了解五层     应用层------------->     表示层-------------> 应用层     会话层------------->     传输层-------------> 传输层     网络层-------------> 网络层     数据链路层---------> 数据链路层     物理连接层---------> 物理连接层 三.OSI协议解析

C#网络编程(基本概念和操作) - Part.1

删除回忆录丶 提交于 2020-02-06 07:14:42
C#网络编程(基本概念和操作) - Part.1 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客户端,客户端最后打印传回的字符串;第三篇是第二篇的一个强化,讲述了第二篇中没有解决的一个问题,并使用了异步传输的方式来完成和第二篇同样的功能;第四篇则演示了如何在客户端与服务端之间收发文件;第五篇实现了一个能够在线聊天并进行文件传输的聊天程序,实际上是对前面知识的一个综合应用。 与本文相关的还有一篇文章是: C#编写简单的聊天程序 ,但这个聊天程序不及本系列中的聊天程序功能强大,实现方式也不相同。 网络编程基本概念 1.面向连接的传输协议:TCP 对于TCP协议我不想说太多东西,这属于大学课程,又涉及计算机科学,而我不是“学院派”,对于这部分内容,我觉得作为开发人员,只需要掌握与程序相关的概念就可以了,不需要做太艰深的研究。

网络编程--Java网络编程入门

人走茶凉 提交于 2020-02-06 03:04:12
Java 网络编程入门 服务器与客户程序只需关心发送什么样的数据给对方,而不必考虑如何把这些数据传输给对方,传输数据的任务由计算机网络完成。 两个进程顺利通信的前提条件是它们所在的主机都连接到了计算机网络上。 网络协议是网络中主机之间通信的语言。 不同网络之间的互联靠网络上的标准语言—— TCP/IP 协议。 OSI 参考模型把网络分为 7 层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。不同主机之间的相同层称为对等层。 物理层:为上一层提供物理连接,以及规定通信节点之间的机械和电气特性。数据作为原始的比特 (bit) 流传输。 数据链路层:数据链路层负责在两个相邻节点间的线路上,无差错地传送以帧为单位的数据。典型设备是交换机。 网络层:选择合适的网间路由和交换节点,确保数据及时传送到目标主机。典型设备是路由器。 传输层:根据通信子网的特性最佳地利用网络资源,为两个端系统的会话层提供建立、维护和取消传输连接的功能,以可靠方式或不可靠方式传输数据。信息的传送单位是报文。 会话层:管理进程间的会话过程,即负责建立、管理、终止进程间的会话。数据传送单位是报文。 表示层:对上层数据进行转换,以保证一个主机的应用层的数据可以被另一个主机的应用层理解。数据传送单位是报文。 应用层:确定进程间通信的实际用途,以满足用户实际需求。

Python实战笔记(二) 网络编程

老子叫甜甜 提交于 2020-02-06 01:09:26
1、Socket Python 提供 socket 模块用于访问网络服务,使得不同主机之间的进程可以相互通信 socket 模块其实就是 Application 和 TCP/IP 的中间层,使得 Application 可以更加方便地使用 TCP/IP 服务 它封装好底层 TCP/IP 复杂的处理逻辑,并向 Application 提供一组方便使用的接口 2、创建 Socket 对象 socket.socket([family[, type[, proto]]]) family:套接字家族,一般取值如下: socket.AF_INET:不同主机上的网络通信,使用 IPV4 协议 socket.AF_INET6:不同主机上的网络通信,使用 IPV6 协议 socket.AF_UNIX:同一主机上的进程通信 type:套接字类型,一般取值如下: socket.SOCK_STREAM:流套接字,用于 TCP 通信 socket.SOCK_DGRAM:数据报套接字,用于 UDP 通信 socket.SOCK_RAW:原始套接字,用于处理 ICMP、IGMP 等特殊的网络报文 proto:协议编号,默认为 0 3、Socket 对象的常用方法 (1)服务端的常用方法 bind(address) :绑定地址到套接字,address 表示通信地址,格式取决于使用的套接字家族 listen

TCP/IP网络编程第1~3章复习总结

∥☆過路亽.° 提交于 2020-02-05 18:53:46
在CSDN里的内容都比较干练,属于复习过程中记下来的,相对于正式笔记来说更加的短小精悍,都是我自以为的重点 要是看起来有些困难的话。 欢迎访问我的GitHub,这里面是稍微啰嗦但非常具体的笔记,属于学的时候记下来的,下面是传送门 https://github.com/oin625/Tcp-ip ----------------------------------------------------------分割线---------------------------------------- 来源: CSDN 作者: zhan-z 链接: https://blog.csdn.net/qq_40962234/article/details/104185611