TCP/IP 이해하기

Etc. : 2011. 3. 15. 19:05

만약 이미지가 안보이실 경우 아래 출처로 이동해서 보세요^^;
 

 TCP/IP(Transmission Control Protocol / Internet Protocol)?

-       네트워크와 네트워크를 연결하기 위한 포로토콜.

여러 개의 네트웍을 연결해서 데이터를 서로 주고 받기위해서로 상호연결하기위한 프로토콜이다

-       컴퓨터 네트워크에서 사용되는 메시지 교환규칙 프로토콜.

-       다양한 형태의 물리적 네트워크에 연결된 컴퓨터를 통해 네트워크 상의 다른 컴퓨터와 통신을 하기 위한 절차를 정의.

 

 TCP/IP의 생성 과정.

-       ARPANET(Advanced Research Project Agency Network) 미국방성 프로젝트 수행 목적으로 구축.

-       NSFNET(the US National Science Foundation Network)

-       Internet = ARPANET + NSFNET : 1980년대 중반

 



[그림 - 1 TCP/IP OSI -7 Layers(계층비교]

  

  TCP/IP ? 데이터 캡슐화역 다중화

 

-       데이터 캡슐화(Data Encapsulation) ? 송신 측 입장에서 데이터 생성과정.


                                  [그림 ? 2 송신 측 입장에서 데이터 생성과정] 


 
순수 사용자의 데이터가 생성 이되면 각각의 계층에서는 각각의 헤더(Header)를 붙이게 된다헤더라는 것은 각 계층에서 해야 할 일들을 정의한 오버헤드(Overhead)라고 할 수 있는데각 계층을 지나면서 각 계층에서 해야 할 일을 헤더에 붙이는 작업을 데이터 캡슐화(Data Encapsulation)라고 한다

  

-       역 다중화(Demultiplexing) ? 수신 측 입장에서 데이터 생성과정.


                                   [그림 ? 3 수신 측 입장에서 데이터 생성과정]


 
이더넷 드라이버에서 수신이 되며해당 데이터를 어느 쪽(ARP, IP, RARP)을 보낼지 이더넷 헤더의 프레임타입(type)을 확인해서 결정한다

 . IP
에서는 TCP, UDP로 보낼지는 결정해야 하는데이때 사용되는 프로토콜의 헤더 값을 확인해서 결정한다

 
응용계층에서는 각각의 포토번호를 확인해서 데이터를 보낸다

 



[그림 - 4 TCP/IP 데이터 요청/응답 흐름]

 

ㅁ TCP/IP 프로토콜 

 각 계층별로 하는 일에 대해서 좀더 자세히 알아 보겠다

 

-       데이터 링크 계층 프로토콜 :
 
패킷을 전달하는 물리적 인터페이스와 관련된 하드웨어를 제어하는 기능을 수행한다.
  (NIC, Hub, Connector, Cable 
)
 . ARP(Address Resolution Protocol)
  
1 TCP/IP 상에서 데이터 전송을 위해서는 
IP주소(32bit)와 MAC주소(48bit) 주소필요
.
     (
.수진 측 모두 필요
)
  
2 물리적의 IP주소를 사용하여 목적지 
MAC주소를 획득하는 프로토콜
.
  
3
 ARP request(Broadcast)  / ARP response(Unicast).




                                [그림 ? 5 ARP 동작과정]


 ARP request : 목적지 IP주소를 써서 모든 컴퓨터에게 보낸다내가 목적지의 IP주소를 알고 있는데,그 목적지의 MAC Address을 알고 있으면 응답을 달라 요청함. (boradcast)

 ARP response : 목적지의 컴퓨터가 요청한 컴퓨터에게 바로 직접적으로 응답을 해준다. (nicast)


 

-       네트워크 계층 프로토콜 :
네트워크 상의 패킷 이동의 제어(패킷을 전달하고 경로를 선택)기능을 수행하는 프로토콜이다. (라우팅 기능 수행)
 
1
 IP(Internet Protocol) : 사용자의 데이터를 패킷 형태로 전송하는 기능을 수행하는 비 연결형 프로토콜이다전송 요청을 라우터에 보내면라우터가 알아서 해당 목적지에 요청을 한다. (라우팅 기능


                                           [그림 ? 6 라이팅 기능
]

 
2
 ICMP(Internet Control Message Protocol) : IP서비스를 이용하여 호스트들이 오류 상황에 대한 정보를 제공한다.


-       전송 계층 프로토콜 : 
두 호스트 간에 종단 간 연결을 맺고 데이터를 전달할 수 있는 기능을 수행
.
 
1
 UDP(User Datagram Protocol) : 종단 간에 연결을 설정하지 않은 채 데이터를 전송하는 비접속형 전송 서비스를 제공하는 비신뢰성 프로토콜
.
 
2
 TCP(Transmisstion Control Protocol) : 종단 간에 연결을 설정한 후 데이터를 전송하는 신뢰성있고순서적인 데이터 전달 서비스를 제공하는 접속형 프로토콜
.
신뢰성 서비스 : 신뢰성을 제공하기 위해 수신 데이터에 대한 확인응답흐름제어세그먼트화 등을 제공.


-       응용 계층 프로토콜 : 
TCP/IP 
프로토콜의 이용하는 서비스

 
1 Telnet : 사용권한을 가지고 있다는 전제 하(계정)에 다른 사람의 호스트 컴퓨터를 원격지에서 액세스 할 수 있는 프로토콜.
 
2
 FTP(File Transfer Protocol) : 여러 시스템간에 파일을 전송하기 위한 프로토콜
.
 
3
 SMTP(Simple Mail Transfer Protocol) : 여러 사용자 간에 전자 메일을 주고 받기 위한 프로토콜
.
 
4
 HTTP(Hypertext Transfer Protocol) : Web상에서 파일(텍스트그래픽 이미지사운드비디오 그리고 기타 멀티미티어 파일)을 주고받는데 필요한 프로토콜.

 

ㅁ TCP 연결 설정.

 TCP의 연결설정 방법은 3-way Handshaking방법을 사용한다



                                   [그림 ? 7 TCP 연결설정 흐름]

 

위 그림과 같이 컴퓨터 A가 B에 연결을 시도하기 위해서 SYN라는 메시지를 보내게된다그러면서 코드 1000이라고 같이 붙어여 보내게 되는데, B컴퓨터에서는 A컴퓨터의 SYN(1000)메세지를 확인해서 B컴퓨터가 연결을 시도하려는거라는걸 알게된다. B 컴퓨터는 다시 컴퓨터에게 ACK라는 메시지와 함께 1001이라고 코드를 같이 보내게 된다.(응답 받은 코드에서 +1을 더해서 보냄그러면서SYN(4000)이라고 보내게 되는데 B 컴퓨터 또한 A 컴퓨터에 연결을 시도하는 것이기 때문이다. A컴퓨터는 다시 B 컴퓨터에게ACK(4001) 보내게되므로서 연결이 된다이렇게 3단계를 거쳐 연결을 되기 때문에 3-way Handshaking이라 한다

 

ㅁ TCP 재전송 타이머

 TCP는 타이머를 통해서 신뢰성 있는 데이터를 주고 받는다, A 컴퓨터에서 패킷을 보냄과 동시에 타이머가 시작되고, A 컴퓨터에선 컴퓨터가 응답을 보낼 시간을 대략적으로 계산해 그 시간까지 응답이 없으면 중단에 패킷이 분실된 줄 알고 타이머가 만료되고다시 이전에 보냈던 패킷을 재전송을 하게 된다 

Posted by 아르다