본문 바로가기

네트워크/프로토콜

4계층 프로토콜 UDP, TCP

4계층 프로토콜 UDP, TCP


  ▶ 4계층 전송 계층 ( Transprot layer )은 송신자의 프로세스와 수신자의 프로세스를 연결하는 서비스를 제공하는 계층이다.


  ▶ 전송 계층은 연결 지향 데이터의 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비를 제공한다.


  ▶ 전송 프로토콜 중 가장 장 알려진 것은

  연결 지향전송박시으로 사용하는 전송제어 프로토콜( TCP )

  단순한 전송에 사용되는 사용자 데이터 프로토콜 ( UDP )가 있다.





UDP 프로토콜


  ▶ UDP 프로토콜 ( User Datagram Protocol )은 데이터 그램 프로토콜 ( Universal Datagram Protocol )이라고 일컫기도 한다.

  ▶ UDP의 전송 방식은 너무 단순해서 서비스의 신뢰성이 낮고, 데이터그램의 도착 순서가 바뀌거나, 중복되거나, 심지어는 통보 없이 누락시키기도 한다.

  ▶ UDP는 일반적으로 오류의 검사와 수정이 필요 없는 프로그램에서 수행할 것으로 가정해야 한다.




  ▶ UDP 프로토콜의 구조






UDP 프로토콜 실습


  ▶ 가상머신 TFTP32로 실습하기



  1. 파일을 주고 받을 메인 PC, 가상머신에서 실행합니다.







  2. TFTP 실행 후, 호스트 주소, 포트번호를 적용






 3. 보낼 테스트용 파일을 작성 후, 윈도우 본체를 본 서버, 가상머신을 클라이언트로 설정합니다.






 4. GET을 클릭하면 파일이 다운로드 되어집니다.





  5. 클라이언트에게 파일을 전달한 서버의 기록입니다.








TCP 프로토콜


  ▶ 전송 제어 프로토콜 (Transmission Control Protocol ) 은 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로 에러없이 교환할 수 있게 합니다.


  ▶ TCP의 안정성을 필요로 하지 않은 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜 ( User Datagream Protocol )을 사용하여, TCP는 UDP보다 안전하지만 느리다.






  ▶ TCP 프로토콜의 구조



  ▶ TCP Flags의 각 기능


Window: 상대방과 데이터를 주고 받을 때, 얼마만큼의 데이터를 보낼 지 정하는 역할을 수행 ( 남아있는 TCP 공간을 알려줌 )


TCP Flags : 어떤값을 보낼지 세팅하는 값

C: X 사용하지 않음

E: X 사용하지 않음

U: Uregent ( 긴급 bit ) - 우선순위가 포함되어있음

   1- 급한 데이터

A: Acknowledgment ( 승인 bit )

P: Push ( 밀어넣기 bit )

R: Reset ( 초기화 bit )

S: Syn ( 동기화 bit ) - 상대방과 연결을 시작할 때 반드시 사용

F: Fin ( 종료 bit )







TCP 프로토콜의 3Way Handshake


  ▶ TCP를 이용한 데이터 통신을 할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정


 1. 클라이언트가 서버에게 요청 패킷을 보내고


 2. 서버가 클라이언트의 요청을 받아 패킷을 보내고


 3. 클라이언트는 이를 최종적으로 수락하는 패킷을 보낸다.


 위의 3개 과정을 3Way Handshake라고 부른다.



  ▶ 3Way Handshake 과정





 1. 보낸 쪽에서 보낼 때는 SEQ번호와 ACK번호가 그대로이다.

 2. 받는 쪽에서 SEQ번호는 받은 ACK번호가 된다.

 3. 받는 쪽에서 ACK번호는 받은 SEQ번호 + 데이터 크기가 된다.





  ▶ TCP 상태 전이도 ( 연결상태 변화 )

  실선은 클라이언트의 상태변화

  점선은 서버의 상태 변화




  ▶ 와이어 샤크로 확인










TCP 프로토콜 실습


  ▶ Netcat으로 실습해보기.


 1. 메인PC와 가상머신의 netcat의 압축을 풀어줍니다.



  2. 보기와 같이 도스 창에서 netcat을 실행시켜 줍니다.
 -l -p [ 사용할 포트 번호 ]






  3. 연결이 확인되었습니다.







'네트워크 > 프로토콜' 카테고리의 다른 글

라우팅 프로토콜  (0) 2020.01.13
7계층 HTTP 프로토콜  (0) 2020.01.12
3계층 IPv4 프로토콜과 ICMP 프로토콜  (0) 2020.01.12
3계층 ARP프로토콜  (0) 2020.01.12
3계층 IP주소  (0) 2020.01.11