网络编程

1.客户端与服务端架构:C/S   B/S  架构

client <-------基于网络通信-------->server

brower<-------基于网络通信-------->server

server必须满足的条件:

①.稳定运行(网络、硬件、系统、应用软件),对外一直提供服务

②.服务端必须绑定一个固定的地址

2.什么是互联网

两大要素:①.底层的物理连接介质,是为通信铺好道路的

②.互联网通信协议(一套统一的通信标准)

3.协议:

任何通信协议都必须满足的两部分:

①.报头:必须固定长度

②.数据

4.tcp/ip五层:

物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应0

数据链路层:单纯的0,1没有意义,该层定义了电信号的分组方式

网络层:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

传输层:建立端口(应用程序与网卡关联的编号)到端口的通信

应用层:用户使用的都是应用程序,规定应用程序的数据格式

5了解:.ip地址:点分十进制,0.0.0.0 – 255.255.255.255      每组是八位二进制

作用:为每一台计算机分配ip地址,另一个是确定哪些地址是在同一个子网络

基于网络的软件端口号:0-65535,其中.-1023为系统占用端口

6.ip+mac就能标识全世界范围内独一无二的一台计算机

ip+port就能标识全世界独一无二的一个应用软件

url:标识全世界内独一无二的一个资源

7.tcp协议:可靠传输,tcp数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常tcp数据包的长度不会超过数据包的长度,以确保单个tcp数据包不必再分割

udp协议:不可靠传输,报头部分一共只有八个字节,总长度不超过65535字节,正好放进一个ip数据包。

8.三次握手与四次挥手

9.半链接池:

限制的是同一时间的请求数,而非连接数

网络编程之tcp五层模型的更多相关文章

  1. 网络编程之TCP/IP各层详解

    网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...

  2. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, /* *TCP *建立连接,形成传输数据的通道: *在连接中进行大数据量传输: *通过三次握手 ...

  3. 网络编程之TCP编程

    网络编程之TCP编程 前面已经介绍过关于TCP协议的东西,这里不做赘述.Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生I ...

  4. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载.   ...

  5. Python网络编程之TCP套接字简单用法示例

    Python网络编程之TCP套接字简单用法示例 本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而jav ...

  6. Java网络编程之TCP

    Java网络编程之TCP ​ TCP主要需要两个类:Socket和ServerSocket,Socket是客户端连接服务器时创建,参数需要指定服务器的ip和端口,ServerSocket是服务器端创建 ...

  7. python(十二):网络编程之ISO/OSI模型

    互联网(Internet)是依据操作系统,在计算机硬件的基础上建立起的通讯机制.它依赖于TCP/IP协议栈. 一.ISO/OSI模型 1.ISO七层模型与OSI五层模型 它们将计算机抽象成了具有层级关 ...

  8. linux网络编程之TCP/IP基础

    (一):TCP/IP协议栈与数据包封装 一.ISO/OSI参考模型 OSI(open system interconnection)开放系统互联模型是由ISO(International Organi ...

  9. 应聘复习基础笔记1:网络编程之TCP与UDP的优缺点,TCP三次握手、四次挥手、传输窗口控制、存在问题

    重要性:必考 一.TCP与UDP的优缺点 ①TCP---传输控制协议,提供的是面向连接.可靠的字节流服务.当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据.TCP提供 ...

随机推荐

  1. C# IEqualityComparer 使用方法 Linq Distinct使用方法

    创建 IEqualityComparer的接口类必须实现Equals和GetHashCode方法 public class TipComparer : IEqualityComparer<Tip ...

  2. github新建托管项目及上传项目

    一.新建托管项目 1.注册: 2.点击new repositories新建一个新项目: 3.输入项目名称及项目描述,Create repository: 4.点击右边栏的剪切板图标,记录下你的项目地址 ...

  3. 算法题之找出数组里第K大的数

    问题:找出一个数组里面前K个最大数. 解法一(直接解法): 对数组用快速排序,然后直接挑出第k大的数.这种方法的时间复杂度是O(Nlog(N)).N为原数组长度. 这个解法含有很多冗余,因为把整个数组 ...

  4. java多线程以及Android多线程

    Java 多线程 线程和进程的区别 线程和进程的本质:由CPU进行调度的并发式执行任务,多个任务被快速轮换执行,使得宏观上具有多个线程或者进程同时执行的效果. 进程:在操作系统来说,一个运行的程序或者 ...

  5. 学习1:python输入输出

    1. 输出 >>> print "hello world" hello world >>> print 'hello world' hello ...

  6. 【Spring事务的事务属性】

    大家都知道,Spring的声明式事务是通过事务属性来定义的,而spring的事务属性包含了5个方面:传播行为,隔离级别,是否只读,事务超时,回滚规则: 传播行为 传播行为,是属于事务边界相关的属性,定 ...

  7. MYSQL表中设置字段类型为TIMESTAMP时的注意事项

    在MYSQL中,TIMESTAMP类型是用来表示日期的,但是和DATETIME不同,不同点就不再这里说明了. 当我们在使用TIMESTAMP类型设置表中的字段时,我们应该要注意一点,首先我们在表中新增 ...

  8. 使用cmd(黑窗口)敲命令使用远程数据库

    C:\Users\gzz>mysql -h 10.27.104.176 -u root -p mysql

  9. 2:django models Making queries

    这是后面要用到的类 class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextFie ...

  10. linux命令(33):tail命令

    1.命令格式; tail[必要参数][选择参数][文件] 2.命令功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理.常用查看日志文件. 3.命令参数: -f 循环读取 -q 不显示 ...