정확한 도서명은 "Head First Design Patterns"
                       스토리가 있는 패턴 학습법
                       한빛미디어, 에릭 프리먼, 엘리자베스 프리먼, 케이시 시에라, 버트 베이츠 저, 서환수 역


사용자 삽입 이미지

Ready , Go!!
학습목표 : TCP & UDP 프로토콜에 대한 이해 필요
               소켓 옵션에 대한 이해 필요
               파일 입출력에 대한 이해 필요
               파일 전송 프로그램 구현

<용어정리>
데이터 : 우리가 실제로 전달하고자 하는 내용
유저 데이터그램 : 데이터가 일정한 단위를 가지는 것을 데이터그램이라 하는데 UDP에서는 특별히 데이터를 유저가 나눴다고 해서 유저 데이터그램이라 한다.
세그먼트 : 데이터들이 조각으로 나눠진 부분들
세그먼트화 : 세그먼트를 만드는 행위, 구획을 나누는 행위
단편 : 원래 완성된 원본 데이터의 일부분
단편화 : 원래 데이터를 재조합하기 위해서 단편화를 한다.
데이터 원형을 보존하는지 안하는지에 따라 차이가 있다.
세그먼트화는 데이터 원래 모양에는 전혀 관심없고 구획만 나누는 것
패킷 : 실제로 네트워크 구간에서 전송되어지는 형태

소켓버퍼
소켓이 생성되면 버퍼가 자동으로 만들어진다. 수신버퍼와 송신버퍼가 생기고 TCP, UDP 모두 가지고 있다.
이 두 소켓의 버퍼의 의미는 약간 다르다. 소켓 버퍼의 크기는 시스템의 안전성과 속도 양측에 모두 영향을 미치게 된다. 버퍼가 큰 것은 시스템 자원의 소비가 크다는 것을 의미하므로 소켓의 효율 저하와 시스템 자원 부족현상을 가져올 수 있으므로 데이터분절 크기와 전송 지연을 고려하여 잘 잡아야 한다 ~

단편화와 재조합
데이터를 통째로 전송하기에는 무리가 있다. 만일 통째로 보내면 파일 손상의 우려가 있기 때문이다. (전송파일의 크기가 클 수록 오류확률이 커진다. 그래서 작은 확률로 여러개를 보내게 되면 오류 난 부분만 새로 보내면 되기 때문에 효율적이다.) 이렇게 데이터를 잘게 쪼개는 과정을 단편화라고 하고 상대편에서 전송되어진 뒤에 다시 조립되는 과정을 재조합이라고 한다. 데이터 크기는 MTU(Maximum Transfer Unit) 크기를 기준으로 쪼개어진다.

TCP는 미리 세그먼트화를 하기 때문에 데이터가 커도 단편화가 일어나지 않고 UDP에서는 단편화가 발생하게 된다.
사용자 삽입 이미지
                                                            Picture] IP Header



사용자 삽입 이미지
                                                           Picture] TCP Header

사용자 삽입 이미지
사용자 삽입 이미지

                                                          Picture] UDP Header



사용자 삽입 이미지

+ Recent posts