본문 바로가기

반응형

Protocol

(4)
ASN.1 ASN.1 이라는 것이 무엇인가? .. 라고 묻는다면..구조화된 데이터(예를 들어 C++ 구조체 혹은 클래스 같은 것들.)에 대해서 기술하고, 인코딩하며, 그 데이터를 전송하고, 수신 하는 경우 디코딩 하는 방법들을 설명하는데 사용되는 일종의 표현법이다...라고 일단 설명 할 수 있겠다. 하지만 사실 이렇게 말하면 머리 속에 무슨 내용인지 쉽게 그림이 그려지지 않는다.(아..지금 이 글을 보는 그대는 그려지는가? 미안하다. 나는 그렇지 않다. 그래서 더 설명 해야겠다) 일단 ASN.1 이 기술한다는 구조화된 데이터,. 즉, 객체(object)라 하면 인/디코딩 하는데 있어 머신혹은 사용하는 언어 따라 천차만별의 방법을 가지는 경우가 종종 있다. ASN.1은 이런 방법에 대해서 어느정도 정규화된 규칙을 제..
HTTP 트랜젝션의 구조 다른 여러 네트워크 프로토콜들과 마찬가지로 HTTP 역시 클라이언트-서버 모델을 가지고 있습니다. HTTP클라이언트는 서버로 향하는 컨넥션을 만들고 리퀘스트 메시지(request message)를 보냅니다. 응답을 마친 서버는 컨넥션을 닫아 버립니다. HTTP 컨넥션에 대한 지속적인 상태를 유지하지 않습니다. 이런 프로토콜 성향 때문에 HTTP를 비상태유지(stateless)프로토콜이라고 합니다. 요청 메시지와 응답 메시지의 포멧은 비슷합니다. 둘 다 텍스트 기반의 프로토콜이며 아래와 같은 메시지 구조를 갖습니다 : 이니셜 라인(initial line) 이니셜 리퀘스트 라인과 이니셜 리스폰스 라인, 두 가지로 구분 됩니다. 헤더 라인 헤더라인 자체가 없어도 되고 1개 이상의 헤더라인이 와도 상관은 없습니..
connected UDP socket 일반적으로 UDP는 비연결 지향형 프로토콜로 알려져 있다. 맞는 말이다. 하지만 디폴트 UDP에 connect라는 것을 첨가하여 보다 편리 하게 쓸 수 있는 것도 사실이다. UDP소켓에다 connect 함수를 사용 한다는 것은 TCP의 그것 처럼 동작한다는 뜻은 아니다(Three-way handshaing 이라던지 하는 과정 들이 없다). 다만 커널에 소켓이 향하고 있는 주소를 기록해 두고 send 할 때 마다 주소를 넘겨 줘야 한다는 것 외의 모든 동작방법이나 기타등등은 다 똑같다. 자꾸 말을 번복하는 것 같지만, 내부에서 돌아가는 것은 다 똑같으나 사용법에 있어서 connected UDP와 unconnected(default) UDP는 다소 다른 점이 있다. 더 이상 목적지 주소와 포트를 지정 할 필..
RTP(RealTime Transfer Protocol) 일반적으로 생각하기에 '실시간 전송 프로토콜'이라는 단어를 말하면 A라는 호스트에서 어떤 이벤트가 발생하면 그와 동시에 B라는 상대편에서도 그 이벤트에 대한 인식을 할 수있을 것을 생각하곤 한다. 하지만 네트워크 상에서의 물리적인 제약으로 그런 실시간은 불가능하다. 아주 좋게 가정해서 전파가 빛의 속도로 전송 된다고 가정하자. 빛은 1초에 지구를 7바퀴 반을 돈다고 한다. 계산을 편하게 하기 위해서 1초에 10바퀴를 돈다고 하자. 그럼 우리 나라에서 지구 반대 편에 있는 미국으로 데이터를 전송하기 위해서는 1/10의 초의 절반 1/20초가 걸린다. 이것는 우리 나라에서 미국으로 직선으로 아무런 방해도 받지 않고 날아가는 아주 나이스한 경우의 이야기고, 미국 까지 가는 도중에는 수많은(?) 라우터를 거쳐 ..

반응형