데이터가 손상되거나 유실되게되면 책임지지 않음.전송계층: 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요.목적지까지 데이터를 전달, 전송계층은 데이터가 제대로 도착했는지 확인 & 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능신뢰성/정확성, 효율성연결형 통신비연결형 통신연결형 통신, 효율적인 데이터 전송이 필요한 애플리케이션에는 비연결형 통신TCP: 전송 계층의 연결형 통신 프로토콜UDP: 비연결형 통신 프로토콜캡슐화: 응용 계층부터 물리 계층까지 계층별로 데이터를 전달할 때 헤더를 붙이는 것
역캡슐화: 데이터 수신 측에서 물리 계층부터 응용 계층까지 계층별로 데이터를 전달할 때 헤더를 제거하는 것
TCP 헤더: (전송계층에서)TCP로 전송할 때 붙이는 헤더 , 세그먼트: TCP 헤더가 붙은 데이터
데이터를 전송하려면 연결이라는 가상의 독점 통신로를 확보해야함. ⇒ 이후에 데이터 전송이 가능
TCP 헤더와 코드 비트

SYN과 ACK가 필요함.SYN: 연결 요청, ACK: 확인 응답 ( 다른 비트는 생각하지 않아도 됨.)

연결은 SYN과 ACK를 사용하여 확립 가능함.
연결 확립을 위해 코드 비트의 SYN과 ACK가 1로 활성화됨.
데이터를 보내기 전에 연결을 확립하기 위해 패킷 요청을 세 번 교환하는 것을 3-way 핸드셰이크라고 함.
데이터를 전송한 후에는 연결을 끊기 위한 요청을 교환해야 함.
연결을 끊을 때는 FIN과 ACK를 사용하는데, FIN은 연결 종료를 뜻함.

FIN과 ACK가 1로 활성화됨.
일련번호와 확인 응답 번호를 사용함.일련번호는 송신 측에서 수신 측에 이 데이터가 몇 번째 데이터인지알려주는 역할을 함. 전송된 데이터에 일련번호를 부여하면 수신자는 원래 데이터의 몇 번째 데이터를 받았는지 알 수 있음.확인 응답 번호는 수신 측이 몇 번째 데이터를 수신했는지 송신 측에 알려주는 역할 ⇒ 다음 번호의 데이터를 요청하는 데도 사용됨.확인 응답재전송하게 되어있음.세그먼트(데이터)를 하나씩 보낼 때마다 확인 응답을 한 번 반환하는 통신 ⇒ 비효율적매번 확인 응답을 기다리는 대신 세그먼트를 연속해서 보내고 난 다음에 확인 응답을 반환하면 효율이 높아짐!
상대방에 세그먼트가 점점 쌓일 거 같은 우려가 있을수도 있지만? ⇒ 받은 세그먼트를 일시적으로 보관하는 장소가 있음. 버퍼 !!!
버퍼 덕분에 세그먼트를 연속해서 보내도 수신 측은 대응할 수 있고 확인 응답의 효율도 높아짐.
but, 수신 측이 세그먼트를 대량으로 받아서 처리하지 못하게 되면? ⇒ 오버플로우 현상이 발생하게됨.
버퍼의 한계 크기를 알고 있어야함. ⇒ TCP 헤더의 윈도우 크기 값윈도우 크기: 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지를 나타내는 것 ⇒ 확인 응답을 일일이 하지 않고 연속해서 송수신할 수 있는 데이터 크기

수신 측이 윈도우 크기를 가지고 있다면 확인 응답을 받지 않고도 세그먼트(데이터)를 연속적으로 전송할 수 있음 !!! 효율적인 방식
연결 확립, 재전송 제어, 윈도우 제어 => 이러한 기능에 의해 TCP는 데이터를 정확하게 전달하는 게 가능했음.전송된 데이터의 목적지가 어떤 애플리케이션인지 구분하는 역할.어느 애플리케이션의 데이터인지 알 수 없기 때문에 일어남.출발지 포트 번호, 목적지 포트 번호가 필요함.서버 측 애플리케이션에서 주로 사용되고 있음.
- 포트 번호를 붙이지 않고 통신하면 컴퓨터에 데이터가 도착하더라도 애플리케이션까지는 도착할 수 없다. ⇒ 결론적으로 `통신 불가`
효율성 중요!
브로드캐스트