OSI 7-layer은 모델일 뿐 실제 사용되는 인터넷 프로토콜은 7계층 구조를 똑같이 따르지는 않습니다. 현재 대부분 TCP/IP Protocol Model Stack를 사용합니다.
Reduce complexity (기능의 인터페이스(모듈화) -> 복잡도 감소)
• Improve flexibility (기능의 인터페이스(모듈화) -> 유연성 향상 DI로 테스트가 편하다.)
• Sub-optimal performance (계층간 호출로 오버헤드 발생해서 최적의 성능이 아니다.)
• Cross-layer information often useful(성능 향상을 위해 종종 하위 레이어가 상위 레이어의 정보를 알고 있을 수도 있다.)
• Several “layer violations” in practice (위의 경우로 레이어간 침범이 일어난다.)
TCP는 Transmission Control Protocol의 약자이고 TCP는 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있습니다. 또한 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록 단위)를 안정적이고 순서대로, 에러없이 교환할 수 있게 합니다.
TCP의 경우 신뢰성을 요구되는 통신에 사용이 된다. 그림을 보면 수신이 가능한지, 데이터의 전송의 시작, 전송의 끝 총 3번을 확인을 한다.
• Connectionless
• Unreliable data transfer
• No flow control
• No congestion control
UDP는 신뢰성보다는 빠른 속도로 데이터를 전송하고자 한다. 그렇기에 스트리밍과 같은 서비스에서 사용된다