데이타그램(DataGram), 데이타그램(DataGram) 구성, 클라이언트 소켓

CODEDRAGON Development/Java

반응형

 

 

데이타그램(DataGram)

인터넷을 통해 전달되는 데이터는 데이터 그램이라 불리는 일정한 크기의 패킷으로 전송됩니다.

데이터 그램은 길이가 제한되어 있기 때문에 종종 데이터를 다수의 패킷으로 분할하고 목적지에서 재조립할 필요가 있고, 전송 중에 하나 이상의 패킷이 손실되거나 손상되어 재전송이 필요하거나, 패킷이 보낸 순서와 다르게 도착하여 재정렬하는 등  많은 노력과 복잡한 코드가 필요할 수 있습니다.

 

 

 

데이타그램(DataGram) 구성

각각의 데이터 그램은 헤더와 페이로드를 포함하고 있습니다.

헤더

(Header)

수신할 곳의 주소와 포트, 패킷을 송신한 곳의 주소와 포트, 데이터 손상을 탐지하기 위한 체크섬, 그 밖에 신뢰할 수 있는 전송을 위해 필요한 정보들이 포함되어 있습니다.

페이로드

(Payload)

데이터 자체가 들어가 있습니다.

 

 

 


클라이언트 소켓

데이터 그램을 통해 데이터를 전달하는 방식은 많은 노력과 복잡한 코드가 필요하지만 자바에서는 클라이언트 소켓을 제공하고 있으며 소켓은 프로그래머가 네트워크 연결을 바이트 단위로 읽고 쓰는 다른 스트림처럼 다를 수 있도록 해 줍니다. 그리고 에러 탐지, 패킷의 크기, 패킷 분할, 패킷 재전송, 네트워크 주소 등과 같은 네트워크 내부의 자세한 내용을 감싸 프로그래머에게 이런 부분을 신경 쓸 필요없이 코드를 작성할 수 있도록 해줍니다.