- 博客(19)
- 收藏
- 关注
原创 TCP/IP 12 超时和重传
TCP/IP 12 超时和重传TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。1、TCP的四种定时器重传定时器:当希望收到另一端的确认时使用。坚持定时器:使窗口信息保持不断流动,即使另一端关闭了其接收窗口。保活定时器:检测一个空闲连接的另一端何时崩溃或重...
2018-04-18 14:11:33 233
原创 TCP/IP 11成块数据流和交互数据流
TCP/IP 11成块数据流和交互数据流现阶段使用TCP/IP的协议很多,这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率。针对不同的吞吐量,TCP给出了两种不同的策略来进行数据传输。1、交互数据流交互数据流常见的比如说按一下键盘,回显一下...
2018-04-17 13:07:20 250
原创 TCP/IP 10 TCP的连接与终止
TCP/IP 10 TCP的连接与终止TCP是一个面向连接的协议,从而保证数据的可靠性,也就是说TCP其实是有状态的,其中分为连接,传输数据,和终止。连接的过程分为三步,我们称之为三次握手,终止连接分为四步我们称之为四次挥手。传输过程中又包括交互数据流和传输数据流。1、TCP连接的建立如下图所示,分为三步,(1)服务器必须准备好接受外来的连接,通常通过socket,bind和listen这3个函数...
2018-04-13 13:09:02 606
原创 TCP/IP 9 DNS
TCP/IP 9 DNS1、DNS系统简介访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非常不好记,于是就出现了DNS系统。简单来说DNS其实就是一个巨大的数据库表,记录着哪些域名对应着哪些IP地址,查询的时候在返回,但是当这个表足够大的时候,查询的效率的问题就...
2018-04-12 14:14:32 207
原创 TCP/IP 8 TCP
TCP/IP 8 TCP1、TCP简介TCP是和UDP都是位于传输层的协议,不通的是TCP可以确保传输的可靠性,但是UDP不能,TCP提供了超时重传,出错重传等。TCP是面向连接的,也就是说TCP在传输的开始,会先建立连接,类似于打电话的过程,我们称之为三次握手,最后四次挥手结束连接。2、TCP确保可靠性的原理(以下是摘抄)应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序...
2018-04-12 13:02:25 337
原创 TCP/IP 7 UDP
TCP/IP 7 UDP1、UDP简介UDP和TCP是我们比较常用的协议,他们都是位于传输层,但是UDP提供的是不可靠的协议,也就是说不会有TCP的超时重传和出错重传等等。2、UDP的端口号和校验和UDP是上层直接使用的协议,所以会有很多的软件使用它,这样他就要提供端口号给不同的软件使用,可以有2^16这么多的端口号,因为端口号占用了16个bit。UDP的校验和对于发送端来说不是必须的(TCP是必...
2018-04-11 13:06:16 141
原创 TCP/IP 6 IP选路
TCP/IP 6 IP选路1、IP选路的原理1) 搜索匹配的主机地址;2) 搜索匹配的网络地址;3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。 这个在IP章节已经说过,不再详细描述。2、路由表我们可以使用route -n或者是netstat -rn来打印路由表这里需要重点说明的是路由表中的几种标志,其中G非常重要因为它区别了 网络是否是直接连接的。U 该路由可以...
2018-04-10 00:09:25 157
原创 TCP/IP 5 ICMP 网络控制报文协议
TCP/IP 5 ICMP 网络控制报文协议1、ICMP的作用ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议( TCP或UDP)使用。一些 ICMP报文把差错报文返回给用户进程。 这里需要注意的是ICMP是封装在IP报文里面的。2、ICMP报文的类型ICMP主要分为查询报文(例如ping)和差错报文,端口不可达或者是重定向等等,...
2018-04-07 20:07:42 333
原创 TCP/IP 4 ARP和RARP
TCP/IP 4 ARP和RARP1、概述ARP为I P地址到对应的硬件地址之间提供动态映射。我们之所以用动态这个词是因为这个过程是自动完成的,一般应用程序用户或系统管理员不必关心。RARP是被那些没有磁盘驱动器的系统使用 (一般是无盘工作站或X 终端),它需要系统管理员进行手工设置。2、ARP的工作原理我们使用的协议中使用的都是IP地址,但是在硬件设备中使用的是物理地址,所以需要把物理地址和IP...
2018-04-07 17:37:16 150
原创 TCP/IP 3 IP:网际协议
TCP/IP 3 IP:网际协议1、IP的特点IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP 、ICMP及IGMP数据都以IP数据报格式传输,IP具有一下特点:1)不可靠不可靠的意思是它不能保证 IP数据报能成功地到达目的地。 IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP消息报给信源端 ...
2018-04-07 17:16:46 249
原创 TCP/IP 2链路层
TCP/IP 2链路层1、链路层的目的在 TCP/IP 协 议 族 中 , 链 路 层 主 要 有 三 个 目 的 :( 1 )为 I P 模 块 发 送 和接收 I P 数 据 报 ; ( 2 )为 A R P 模块发送 A R P 请 求 和 接 收 A R P 应 答 ; ( 3 )为 R A R P 发送 R A R P 请求和接收 R A R P 应答。 2、环回接口环回接口指的就是指向...
2018-04-07 13:29:38 138
原创 TCP/IP 1 概述
TCP/IP 概述1、TCP/IP协议是干嘛的 很多厂家生产出各种型号的计算机啊,TCP/IP协议族允许他们进行通信,而忽略底层的硬件不同的实现。这里需要注意的是TCP和IP只是两个协议,而我们通常说的TCP/IP是一个协议族,包含很多协议,比如ICMP、UDP、ARP等等。2、TCP/IP协议族的四个层次TCP/IP通常被称作为一个四层的协议系统1) 链路层 有时也称作数据链路层或网络接...
2018-04-07 12:47:50 271
原创 1. Two Sum
1. Two Sum题目描述:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not ...
2018-03-31 16:56:18 120
原创 判断一个字符串里面是否有重复的字符
**题目要求:请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。** 第一种解法:看到这道题目大家的第一想法就是判断字符串的长度是不是大于256,大于256那么一定
2016-05-16 20:38:54 7124
原创 Android studio 创建百度地图应用
最近用android studio写了一个百度地图的应用,好麻烦,搞了将近两天,究其原因只要是百度地图的官网上的例子和配置都是基于Eclipse的,为了让大家少走弯路我把过程记录下来: 1、创建自己的百度账号,并且创建应用,因为会用到KEY,创建的过程官网上有 2、文件路径如下图 3、这样子代码是不会有问题的,但是显示不了地图只有灰色的方格,解决方法:由于AS和eclipse结构不一样,所
2015-10-27 16:58:02 443
原创 char*, string, CString, String^的相互转换
从char*转换: char *chars = "Hello";从char*到string: string s(chars);从char*到CString: CString s(chars);从char*到String^: String ^s = gcnew String(chars); 从string转换
2015-05-29 12:01:09 301
原创 C++头文件和源文件
c++程序来说,基本上来说都是要把源文件和头文件分别编写。一般都是代表一个基本功能的源文件引用相应的头文件。 一个 相关功能的模块可能有若干对源文件和头文件组成。这是基于组件编程的核心。在我看来,他的好处是巨大的,是java不可比拟的,也是不可复制的: c语言中头文件中一般定义了函数的声明、结构体的定义、宏定义。(常量和全局变量最好放到源文件中) 1) 从业务扩展性上看:头文件中放函数的声
2015-05-11 00:35:02 449
原创 C++学习笔记(二)
在C++中字符串的初始默认后面是有一个空字符的即 \0 其中空字符自动追加到末尾 如: char dog[]={‘d’,’o’,’g’} char dog[]={‘d’,’o’,’g’,’\0’} 这里前者不是字符串,后者才是,若是用cout打印的话,后者会打印出dog,但是前者会一直打印,直到打印出到空字符为止,因为空字符在系统中很常见,这会很快终止,但是一定会引起乱码。前
2015-04-28 01:15:28 283
原创 C++学习笔记(一)
1、关于 int main() 函数的返回值: mian() 函数的返回值是给系统的,一般我们写成int mian()这样的默认返回值是return 0,有时写成void main() 其实这样子一般来说是没有问题的,但是有时写入嵌入式,或者和底层很相关的时候就可能出错。 2、#define 与#include的作用是类似的,预处理作用 3、关于头文件 其中定义了符号常量来表示类型的
2015-04-28 00:40:24 290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人