티스토리 뷰
4계층의 역할과 개요
4계층 이상의 상위 계층에서는 데이터를 운반하는 직접적인 동작은 하지 않는다.
4계층 이상의 상위 계층에서는 전달할, 전달된 데이터에 대해 필요한 처리를 함.
3계층까지는 수신처 자체가 존재하지 않거나 데이터가 도중에 손실됐거나 에러에 의해 파기됐다는 등의 문제들은 신경쓰지 않는다.
=> 4계층이 에러 복구(역할1)
흐름제어 : 신뢰성이 높은 통신을 위해서 에러를 복구하고 통신 상태도 확인한다.(역할2)
실은 데이터를 주고받는 것은 애플리케이션이다.
포트 번호 : 어느 애플리케이션이 송수신할지를 결정하는 번호
TCP/IP에서 실제로 이런 제어를 행하는 것이 TCP와 UDP라는 두 프로토콜.
통신할 때 둘 중 어느 한 쪽이 사용. because TCP와 UDP는 역할이 다름
커넥션과 세그먼트
커넥션
TCP에서는 애플리케이션 간의 데이터 송수신을 함.
커넥션 : 이 때 데이터 송수신을 하는 데이터의 길(가상적인 통신로)
3계층의 라우팅에서 나온 경로와는 다름
데이터 전송을 시작하기 전에 미리 확인을 주고받아 두는 것. 확실하게 전달한 것을 확인
커넥션 확립 : 이 가상의 통신로를 만들어 내는 것
TCP 헤더의 크기 : 기본적으로 20비트
커넥션의 확립
커넥션을 확립하기 위해서는 상대가 데이터 전송을 허가해 줘야 돼.
=> 통신로를 확보하기 위해 상대에게 데이터 전송의 허가 요청
=> 상대는 그것에 대한 허가를 송신처에 알림
... 상대에게 바르게 전달된 것을 확인
이제 반대로 수신처 측이 송신처에게 데이터 전송 허가 요청을 보냄.
그것에 대해 송신처도 데이터 전송 허가를 보내고. => 쌍방향의 통로가 확보
이 커넥션의 확립에는 3번 주고받아야 하기 때문에 3방향의 악수 쓰레웨이 핸드쉐이크라고 불림
세그먼트 분할
TCP는 애플리케이션으로부터 받은 데이터(메시지)를 세그먼트로 캡슐화한다.
한 개의 데이터를 MSS(Max Segment Size)로 분할. 한 개의 데이터가 복수의 세그먼트
그리고 각각의 세그먼트에 번호를 부여(시퀀스 번호)
윈도우 제어
에러복구
TCP에서는 시퀀스 번호를 사용해서 에러를 복구
확인응답 : 세그먼트를 수신하면, 수신한 것을 송신처에게 전달
데이터 송신 시에는 시퀀스 번호가, 확인응답에는 확인응답 번호가 중요
시퀀스 번호는 보내는 데이터의 앞 부분에 있는 옥텟 번호이고, 확인응답 번호는 다음에 받고 싶은 데이터의 선두 옥텟 번호다.
시퀀스 번호로 세그먼트가 보내는 데이터가 전체의 어느 부분에 해당하는 지를 알 수 있고,
확인응답 번호로 다음에 받고 싶은 데이터 번호를 알린다.
=> 다음에 받을 예정의 데이터 번호까지 전달. 수신측이 어느 데이터까지 받았는지를 알 수 있다.
흐름제어에서도 중요. 확인응답이 도달하지 않았을 때에는 재전송
RTT(Round Trip Time) : 지금까지 보낸 데이터에 대해 확인응답이 돌아오기까지 걸린 시간
윈도우 제어
'세그먼트송신-> 확인응답' 이라는 흐름이 실제로는 너무 느려
'복수의 세그먼트전송 -> 확인응답' 형태로 바꿈. 시간 효율 좋아져
정확, 확실 하지 않아 => 윈도우 제어(수신한 데이터를 일시적으로 보관(버퍼))
윈도우 사이즈 : 어느 정도 버퍼량을 가지고 있는지(확인응답을 기다리지 않고 보낼수 있는 데이터 양)
윈도우 제어 : 윈도우 사이즈를 상대방에게 알려줌으로써 윈도우 사이즈만큼의 데이터를 한번에 보내도 오버플로 하지 않는다는 것을 알 수 있게 해.
포트 번호
애플리케이션 간 통신
포트번호를 사용해 각각의 데이터가 어느 애플리케이션으로부터 송신되었는지, 어느 애플리케이션 수신인지 결정
각 컴퓨터 내부에는 통신 데이터를 흐르게 하기 위한 가상의 출입구가 있다.
각 애플리케이션은 그 중의 하나를 선택해서 데이터 송수신의 입구로 삼는다.
포트 번호로 데이터를 보낼 애플리케이션을 특정
IP 주소와 포트 번호를 사용해서 어느 컴퓨터의 어느 애플리케이션인지 식별
수신처 포트 번호를 모르면 데이터를 보낼 수 없다.
수신 받을 애플리케이션이 포트와 접속해 있지 않으면, 데이터는 도달할 수 없다.
자주 사용하는 서버 애플리케이션은 사전에 정해진 번호를 사용함으로써 서비스를 제공할 수 있도록 한다.
웰 노운 포트(well known port) : 서버 애플리케이션 - 65,536개의 포트 번호 가운에 1~1023번까지가 해당
1024~49151번까지는 등록된 포트 : 미리 등록되어 있는 포트 번호
송신하는 측의 애플리켕션은 이런 번호 이외의 49152~65535번까지의 번호 중에서 원하는 번호 선택
UDP
복습
TCP/IP에서는 4계층에 2개의 프로토콜이 존재한다고 했다. TCP(정확, 확실을 표어로 하는 프로토콜), UDP
TCP의 단점 : 그 정확, 확실이 독이 될 수도 있다. 쓰리웨이 핸드쉐이크, 에러 복구, 흐름제어
=> 확인응답을 기다리는 시간이 치명적
UDP 헤더에는 포트 번호 이외에 별다른 항목이 존재하지 않는다. 즉 아무것도 하지 않는 프로토콜. 고속
UDP의 용도
고속성이나 실시간 송수신이 필요한 애플리케이션, ex) VoIP, 동영상 스트리밍 배포,
브로드캐스트가 필요한 애플리케이션(TCP에서 브로드캐스트는 상당히 어려움)
'책 > 하루 3분 네트워크' 카테고리의 다른 글
커넥션과 포트변환2 (0) | 2020.09.12 |
---|---|
라우팅2 (0) | 2020.08.25 |
라우팅1 (0) | 2020.08.21 |
IP 어드레싱2 (0) | 2020.08.19 |
IP 어드레싱1 (0) | 2020.08.17 |