[통신] CH. 7 TCP, UDP

Kwaaaaan·2023년 3월 21일
2

통신

목록 보기
7/11

TCP와 UDP

연결지향 프로토콜인 TCP와 비연결지향 프로토콜인 UDP, 두가지의 Transport Layer(4계층) 안에 존재합니다.

TCP

수신측이 데이터를 승인해야 다음 데이터를 보내는 방식입니다.

• 연결지향
• 높은 신뢰성
• 속도가 느림
3-way handshaking을 통해서 상대방이
신호를 받을 수 있는지 확인하고 전송
• 4-way handshakinig 을 통해서 해제
• 흐름제어, 혼잡제어
• 다중화

3-Way Handshaking(TCP)

클라이언트와 서버 사이에서 이루어지며, 연결이 잘 되어있는지 확인하는 과정입니다.
>
1. client -> server 연결 요청 메시지 전송
message : SYN1
SYN : Synchronize sequence number, 임의의 랜덤 숫자
2. server 가 요청을 수락, client 에게 메시지 전송
message : (SYN2 + ACK (SYN1 + 1))
ACK : Acknowledge Number : 응답 숫자 = SYN+1

  • 새로운 SYN과
  • #1에 대한 응답 ACK 두 숫자를 보냄
  1. #2에서 받은 SYN2에 1을 더한 ACK 전달
    message : ACK (SYN2 + 1)
    -------->
    간단하게 아래와 같은 그림으로 설명할 수 있습니다.


    해제를 할 때에는 4-Way Handshaking을 이용합니다.

흐름제어

두 호스트 간의 패킷 흐름을 제어하기 위한 방법입니다. 이는 크게 두가지방법이 있는데, 첫 번째는 슬라이딩 윈도우가 있고, 두 번째로는 Stop-and-Wait방식이 있습니다.
흐름제어는 수신측이 송신측보다 처리속도가 느리면 문제가 발생합니다. 또한, 수신측에서 제한된 저장 용량을 초과하고 도착하는 데이터는 손실될 수 있기에 흐름제어가 필요합니다.

Stop-And-Wait 방식

항상 전송된 패킷이 확인 응답을 받아야 그 다음 패킷을 전송할 수 있습니다.

Sliding Window

수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK)없이 전송할 수 있게 하여 흐름을 동적으로 조절합니다. 또한, 윈도우에 포함되는 모든 패킷을 전송하고, 전송이 확인되는대로 인도우를 옆으로 옮겨 다음 패킷들을 전송합니다. Sliding Window는 연속전송과 윈도우의 크기가 상황에 맞게 동적으로 변화한다는 특징이 있습니다.

UDP

단방향으로 데이터를 보냅니다. 데이터를 올바르게 수신했는지 확인하지 않으며, 신뢰도가 낮지만 속도가 빠릅니다.
데이터 그램이 개별적으로 전송경로를 선택하고 독립적으로 이동하기 떄문에 도착순서가 뒤바뀔 수 있습니다. 또한, 데이터가 분실되거나 순사가 바뀌어도 헤더정보에 Sequence number에 대한 정보가 없어서 오류 해결이 불가능 합니다. 만약 오류를 해결하고 싶다면, 상위 계층의 응용프로그램에서 자체적으로 구현 되어있어야 합니다.

• 비연결지향
• 신뢰성이 낮다
• 속도 빠름
• 정보를 주고 받을 때 보내거나 받는다는 신
호절차를 거치지 않음.
• 데이터 그램 방식
• 비순서성
• 연속성이 중요한 실시간 서비스에 용이
• 최소한의 오류만을 검출

포트번호

TCP와 UDP가 상위 계층에 제공하는 주소 표현 방식입니다. 프로세스가 사용하는 고유 주소는 해당 호스트의 IP주소와 호스트 내부의 포트 번호가 조합된 형태(192... .. :80)로 나타납니다.
비교적 널리 알려진 포트번호는 아래의 표와 같습니다.

							`그림출처 : https://daengsik.tistory.com/30`
profile
스마트팩토리 개발자(를 꿈꾸며)

0개의 댓글