我对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
  • 下载

TCP/IP协议初步认识

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

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

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

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

Linux平台下基于TCP/IP协议的C++网络编程初步 实验平台:Ubuntu(Linux) 开发工具:Eclipse+CDT 作者:@郑海波  http://blog.csdn.net/...
  • artwebs
  • artwebs
  • 2013年11月08日 17:25
  • 777

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/...

C#网络编程初步之TCP

阅读背景:本文针对有C#的初学者而写的,主要讲解如何利用C#进行网络编程。如果你已经有一些网络编程的经验(只需要懂得网络编程的基本常识即可),并且理解C#的基本语法,那么这篇文章可以很快地带你进入C#...

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

最近由于做一个移动客户端的项目时需要用C语言的服务器,故而自己学习了一段时间的C++网络编程,有一些代码心得,大家分享一下。 服务器端用的是C++在VS下编译。代码比较生涩。小白一枚。勿喷。 //...

python网络初步(TCP)

实现服务器端和客户端互发信息 server.py #!/usr/bin/python #coding: utf-8 import socket from time import ctime h...

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

在上一篇博文Qt学习之路_4(Qt UDP的初步使用) 中,初步了解了Qt下UDP的使用,这一节就学习下TCP的使用。2者其实流程都差不多。当然了,本文还是参考的《Qt及Qt Quick开发实战精解》...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我对tcp的初步理解
举报原因:
原因补充:

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