我对tcp的初步理解

原创 2007年09月18日 12:23:00

 以前总听说tcp/ip协议,感觉很叼,总搞不清是个什么东西。

最近在看unix网络编程,似乎有点懂了,不就是源代码么。也就是内核的一部分,至于是谁规定出来的,是谁写出来的,我想应该是n个牛人协议出来的吧。

以前看书的时候总有这样的问题,为什么有了tcp就可以实现网络的数据传输呢?(是不是我有点SB)。现在总算是有点感觉了。

我说个例子看看是不是这样:

目的:实现两台主机之间的简单tcp通信,就a和b吧。

过程:

1 a想和b通信,那么a就要有b的相关相关信息,为什么?你和别人打招呼都不用知道别人的类似名字之类的东西吗!那a为什么能够知道b的相关信息勒?这就是tcp协议该干的事了,别问我tcp协议在哪儿?它就在你的unix/linux内核里。具体tcp要做的事是把bip,port,等一切相关的信息写到一定的结构里,如sockaddr_in。这就是a要做的基本的准备工作。

2 b呢?它需要有什么准备?你去和别人打招呼,别人准备什么?等着呗,天知道你什么时候和人家打招呼啊,只能等着。~~他只需要有打招呼这个心理准备就行了。回到我们的b上,它只需要听着(listen())有没有外面的连接来就行了。至于listen之前的工作,我就不说了,网上很多详细内容的。行了,b也可以了。

Ps 为什么这样就实现了端对端的通信呢?我以前很纳闷,答案是因为这就是tcp规定的(当然前提是这两个系统里都有tcp这部分的源代码),它说行不就行了!想想自己真是太…….

3 好了,现在可以通信了。

再看看tcp它到底干什么了?我的理解是:两个老外,一个会说德语和英语,一个会说韩语和英语。他们两个人交流时各自用自己的语言,肯定是不通的。此时要是有第三个人他说;“你们为什么不用英语交流呢?”那么他们就可以交流了。没错,Tcp充当的就是第三者,两个老外就是ab,也许他们都有各自的很多通信协议,什么tcp,udp啊,只要找到一个a b都有的通信机制,它们自然就通了。

简单的说tcp就是提供了一个模式。

概念不准,但希望例子多少会有点用,看概念的话,书比我清楚,哈哈

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

TCP客户服务器的初步应用

  • 2012-07-07 15:54
  • 4.93MB
  • 下载

Linux平台下基于TCP/IP协议的C++网络编程初步

Linux平台下基于TCP/IP协议的C++网络编程初步 实验平台:Ubuntu(Linux) 开发工具:Eclipse+CDT 作者:@郑海波  http://blog.csdn.net/...

TCP/IP协议初步认识

TCP/IP协议簇有5层组成:物理层、数据链路层、网络层、传输层和应用层。 在物理层和数据链路层,TCP/IP并没有定义任何特定的协议,它支持所有标准的和专用的协议,其接入网络可以是LAN、MAN、W...

linux下TCP socket编程初步(1)

Socket编程: 结构:sockaddr_in Sin_family 地址家族 AF_INET AF_INET6 Sin_port 16位 Sin_addr s_addr 32位   S...

C#网络编程初步之TCP

http://blog.csdn.net/mymonkey110/article/details/6841347     阅读背景:本文针对有C#的初学者而写的,主要讲解如何利用C#进行网...

Qt学习之路_5(Qt TCP的初步使用)

Qt学习之路_5(Qt TCP的初步使用)        在上一篇博文Qt学习之路_4(Qt UDP的初步使用) 中,初步了解了Qt下UDP的使用,这一节就学习下TCP的使用。2者其实流程都差不...

[网络编程]——TCP_Socket通信_聊天室_客户端多线程.初步形成

/** * 创建服务器,加入多线程 * 写出数据:输出流 * 读取数据:输入流 * @author Administrator * */ /** * 创建服务器 * 写出数据:输出流 ...

C#网络编程初步之TCP

http://www.cnblogs.com/chengulv/archive/2013/01/21/2870406.html  阅读背景:本文针对有C#的初学者而写的,主要讲解如何利用C#...

socket与TCP/UDP的关系初步认识

TCP/UDP基本概念首先要知道的名词是TCP/IP协议; TCP/IP协议是从OSI参考模型中简化而来,简化为四层协议; 1 应用层 2 传输层 3 网络层 4 网络接口层 那么TCP/...

初步学习网络编程tcp/ip (一)

最近由于做一个移动客户端的项目时需要用C语言的服务器,故而自己学习了一段时间的C++网络编程,有一些代码心得,大家分享一下。 服务器端用的是C++在VS下编译。代码比较生涩。小白一枚。勿喷。 //...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)