블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday

'TCP/IP'에 해당되는 글 1건

  1. 2010.04.12 TCP/IP(Transmission Control Protocol / Internet Protocol) 4



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 연결설정 흐름]

 

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

 

TCP 재전송 타이머

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

[그림 – 8 TCP 재전송 관련]

 

 

 

Posted by happydong
, |