티스토리 뷰
전송계층
Transport Layer : 전송계층
End point간에 신뢰성 있는 데이터 전송을 담당하는 계층
신뢰성 : 데이터 순차적 안정적 전달
전송 : 포트번호에 해당하는 프로세스에 데이터 전달
신뢰성있는 데이터를 포트번호. 해당번호에 전달한다.
전송계층이 없다면?
- 데이터 순차전송 원할히 x
(송신자)123 ➡️ (수신자)231
- flow 흐름
원인? : 송수신자간의 데이터 처리 속도 차이. 컴퓨터는 우리의 뇌처럼 데이터저장량의 한계가있다. 한계를 넘어서 데이터가 송신이된다면 데이터량을 초과해서 데이터 누락.
- congestion 혼잡문제
원인? : 네트워크의 데이터 처리속도 (ex.라우터) . Network가 혼잡할때
결과 : 데이터의 손실 발생
그리하여 등장

나야 TCP
TCP(Transmission Control Protocol) 전송 제어 프로토콜
- 신뢰성있는 통신을 가능하게 해주는 프로토콜
- 특징 : connection 연결 (3way handshake) 양방향 통신
- 데이터의 순차전송을 보장
- flow control 흐름제어
- congestion control 혼잡제어
- error detecton 오류감지
세그먼트와 헤더
세그먼트?
IP프로토콜의 패킷처럼 프로토콜안에서 데이터가 처리되고 움직이고 하는데
이때 데이터의 단위 : 세그먼트
데이터를 전송을하면 TCP 프로토콜안에서 내부적으로 잘라서 -> TCP 헤더를 데이터에 추가후 -> 데이터완성
이게 바로 세그먼트
세그먼트를 가지고 프로토콜안에서 데이터를 처리
- SYN : 커넥션 연결
- FIN : 커넥션 연결 종료
- ACK : 데이터 수신자의 응답 제어
TCP의 3way handshake (커넥션 연결)
<3way handshake>
1. SYN (커넥션연결) 비트를 1로 설정해 패킷 송신
2. SYN(커넥션연결), ACK(데이터 수신자의 응답제어) 비트를 1로 설정해 패킷 송신
-> 커넥션은 양방향
3. ACK(데이터 수신자의 응답제어) 비트를 1로 설정해 패킷 송신
이렇게 해서 양방향 커넥션이 연결되면 아래와 같이 데이터 전송을 한다
데이터전송과정
1. 클라이언트가 패킷 송신
2. 서버에서 ACK 송신
3. ACK를 수신하지 못하면 패킷 재전송 => 신뢰성! => IP패킷의 한계인 비연결성 보완
4 way handshake
1. 데이터를 전부 송신한 Client가 FIN (커넥션 연결종료)송신
2. 서버가 1로 설정해서 ACK 전송
3. 서버에서 남은 패킷 전송(일정시간 대기)
4. 서버가 FIN 전송
4. 클라이언트가 ACK 전송
TCP의 문제점
3웨이...시간손실..
패킷 조금만 손실해도 재전송을 해야되는데
티가안나는 손실에도 불구하고 재전송을 해야되면? 서비스에 따라서 불합리한 방식
그래서 내가 등장

나야 UDP
내가 더 상위개념이냐고? 아니 그건아냐 이제부터 알아보자!
UDP(User Datagram Porotocol)
- TCP보다 신뢰성은 떨어지지만 전송속도가 일반적으로 빠른 프로토콜
- 컨넥션 x
- 에러 감지
- 비교적 데이터의 신뢰성이 중요하지 않을때 사용(ex. 영상 스트리밍)
User Dataram
TCP 차이점? 쪼개지않는다.
헤더도 또한 간단하다
전송과정
중요한점은
✔️TCP, UDP의 특성을 파악하고 상황에 따라 적절한 프로토콜을 사용 할 수 있다.
✔️TCP,UDP의 헤더에 대해 파악하고 성능 개선에 이용할 수 있다.
'백엔드&컴퓨터사이언스' 카테고리의 다른 글
[배포]AWS? 클라우드 컴퓨팅 (0) | 2022.01.05 |
---|---|
[네트워크] HTTP 헤더 (컨텐츠타입은 중요허다.) (0) | 2022.01.03 |
[컴퓨터 공학] 가비지컬렉터(메모리관련) (1) | 2021.12.31 |
[컴퓨터공학] 운영체제 (0) | 2021.12.30 |
[컴퓨터공학] 인코딩,유니코드,UTF-8이 뭐람 (0) | 2021.12.30 |