본문 바로가기
■ Programming /Window Network

[윈도우 네트워크][TCP/IP] TCP/IP 프로토콜 구조

by Popbox 2017. 4. 6.
반응형

[TCP/IP][네트워크 프로그래밍] TCP/IP 프로토콜 구조

 

 

TCP/IP 프로토콜 구조

 

일반적으로 프로토콜은 기능별로 나누어 계층적으로 구현합니다.

TCP/IP 프로토콜도 이 구조를 따릅니다.


 

 

  1. 네트워크 접근 계층


네트워크 접근 계층(network access layer)은 물리적 네트워크를 통한 실제 데이터 송후신을 담당한다.


[구성요소]

물리적 신호를 처리해 데이터를 송수신하는 -> 네트워크 하드웨어 ,

운영체제가 제공하는 -> 장치 드라이버

두가지가 있습니다.


네트워크 접근 계층에서는 하드웨어적으로 정의된 물리 주소 (physical address)를 사용해 통신하는데, 물리 주소는 네트워크 방식에 따라 다르며 일반적으로 상호 호환되지 않습니다.

흔히 사용하는 이더넷(Ethernet)에서는 48비트 물리 주소를 사용합니다.


이더넷이란? : http://blog.naver.com/rkdign/220971052417



[명령프롬프트(cmd) -> ipconfig/all 명령을 실행해 물리적 주소 확인가능]



 





 

  2. 인터넷 계층

 

인터넷 계층(internet layer)은 네트워크 접근 계층의 도움을 받아 데이터를 목적지 호스트까지 전달하는 역할을 합니다.

네트워크 접근 계층처럼 주소를 지정하는 방법이 필요한데, 하드웨어적으로 정의된 물리 주소 대신 소프트웨어적으로 적의된 논리 주소인 IP주소 (Internet Protocol address)를 사용합니다.


IP주소는 네트웍 물리주소와 별개로 정의하며, 전 세계적으로 유일성을 보장합니다.

IP의주소의 유일성과 하드웨어 독립성 덕분에 TCP/IP 프로토콜은 다양한 네트워크 기술과 하드웨어에서 작동할 수 있으며, 이를 통해 전 세계적인 네트워크인 인터넷(Internet)을 만들 수 있게 되었습니다.


IP주소는 통신에 참여하는 호스트를 유일하게 지정하는 방법을 제공하지만, 실제 통신을 하려면

전송 경로를  결정하고 그에 따라 데이터를 전달하는 절차가 필요합니다.

이를 라우팅이라 부름니다.


라우팅(routing)은 데이터를 목적지까지 전달하는 일련의 작업을 가리키는 용어입니다.

라우팅을 담당하는 전용 장비를 라우터(router)라 부르고,

라우터를 통해 서로 다른 네트워크에 연결된 호스트가 통신할 수 있습니다.


라우터에 대해 알아보기 : http://blog.naver.com/rkdign/220971085686




 

  3. 전송 계층

 

전송 계층(transport layer)은 최종 통신 목적지를 지정하고 오류 없이 데이터를 전송하는 역할을 한다.

앞서 언급한 인터넷 계층의 역할은 IP주소와 라우팅을 이용해 목적지를 호스트에 데이터가 도달할 수 있게 하는 것입니다.

그러나 통신의 최종 목적지는 호스트가 아닌 해당 호스트에서 실행하고 있는 프로세스(응용 프로그램)입니다. 따라서 전송 계층에서 프로세스를 지정하는 일종의 주소를 사용하는데,

이를 포트 번호(Port number)라 합니다.


포트에 대해 알아보기 : 업데이트예정



인터넷 계층의 IP가 제공하는 전송서비스는 최선을 다하지만 신뢰성이 없다는 특징이 있습니다.

즉, 데이터에 문제가 생기면 목적지에 도달하지 못하는 상황이 생깁니다. 목적지에 도달해도 손상됐을 가능성도 있습니다.

전송계층에서는 이러한 데이터 손실 또는 손상을 검출해 잘못된 데이터가 목적지에 전달되는 일을 방지합니다.


전송 계층에 해당하는 TCP/IP 프로토콜로는

TCP(Transmission Control Protocol),

UDP(User Datagram Protocol) 이 있습니다.


 TCP

UDP 

 연결형(connection-oriented) 프로토콜

  - 연결 설정 후 통신 가능

 비연결형(connetcionless) 프로토콜

  - 연결 설정 없이 통신 가능 

 신뢰성 있는 데이터 전송

  - 데이터를 재전송함

 신뢰성 없는 데이터 전송

  - 데이터를 재전송하지 않음

 일대일 통신(unicast)

 일대일 통신(unicast)

 일대다 통신(broadcast , multicast) 

 데이터 경계 구분 안함

  - 바이트 스트림(byte-stream) 서비스

 데이터 경계 구분함

  - 데이터그램(datagram) 서비스








  4. 응용 계층

 

응용 계층 (application layer)은 전송 계층을  기반으로 한 다수의 프로토콜(Telnet, FTP , HTTP , SMTP 등)과 이 프로토콜을 사용하는 응용 프로그램을 포괄합니다.


소켓을 사용한 네트워크 프로그램도 여기에 속합니다.





 

 

 감사합니다. 공감 한번 부탁드려요.

[ 다음 장 ]

   

  




반응형

댓글