목록Study/Network (4)
이상한 코딩 나라의 혜돌이
패킷을 예쁘게 만들어서 보냈으면 당연히 받을 때도 예쁘게 받아줘야 한다. 물론 그냥 scapy에서 제공하는 hexdump(pkt) 또는 pkt.show()로 볼 수도 있지만, 그러면 필드값 추출하기가 너무 너무 너무 너무 까다로워진다. send.py 짜는 법은 여기에서 확인 1. send.py에서 정의한 그대로 커스텀 헤더를 작성해 준다 class custom_header(Packet): """Custom Header""" name = "custom header" fields_desc = [ BitField("field1", 0, 16), # BitField("field_name", initial value, byte_length) BitField("field2", 0, 8), BitField("fiel..
사실 원하는 헤더를 직접 만들어서 패킷을 보낼 일은 많지 않다. 그래도 연구 하시는 분들에게는 도움이 될 수도 있으니까 + 나도 볼 겸 정리를 해 본다. 1. 원하는 패킷의 헤더를 Class 형태로 정의한다 class custom_header(Packet): """Custom Header""" name = "custom header" fields_desc = [ BitField("field1", 0, 16), # BitField("field_name", initial value, byte_length) BitField("field2", 0, 8), BitField("field3", 0, 8) ] BitField(원하는 필드 이름, 0, 비트수)로 리스트 형태로 정의해 주면 된다. 두 번째 파라미터는 무슨..
호스트에서 호스트로 메시지를 전송하려고 할 때, 개발자는 어떻게 코드를 작성할까? 먼저 소켓을 생성(socket 함수)하고, 다른 호스트와 connect를 하면(connect 함수), 소켓 객체에는 예를 들어 아래와 같은 정보들이 담기게 된다. (python, TCP socket 기준. 다른 언어도 비슷하다) 송신자에서 이 소켓에 메시지를 작성하면, 수신자는 소켓에서 메시지를 읽어오고, 같이 담겨온 주소로 다시 메시지를 전송한다. 조금 더 직관적으로 보면, 위의 그림처럼 나타낼 수 있다. 따라서 개발자는 네트워크 프로그래밍을 할때, Socket API를 이용하며 그 아래 레이어는 전혀 신경쓰지 않고 개발하는 것이 가능하다. 그럼 Socket API는 어느 레이어에 존재할까? 대부분의 강의 자료에서 아래와..
OTT란, OTT는 Over The Top의 약자이며, 기존의 TV가 아닌 인터넷이 가능한 다양한 기기를 통해 시청 가능한 컨텐츠를 의미. 기존 TV는 KT, LG 등의 회사에 가입하고, 특정 망에 종속되어 컨텐츠를 이용할 수 있었음. (케이블 방송은 돈을 더 내고 보고...) 반면에 OTT는 인터넷을 통해 시청하므로 내가 어떤 망을 사용하는지와 상관없이 컨텐츠를 이용할 수 있음. 유튜브와 넷플릭스 같은 서비스가 대표적인 OTT 서비스라고 할 수 있음. OTT가 등장하면서, 각종 규제, 지상파 방송사와 방송 컨텐츠 계약, 망 중립성, 불법 및 유해 컨텐츠 규제 등과 관련된 이슈들이 같이 떠올랐음. CDN (Content Distribution Networks) 넷플릭스와 같은 회사들이 자신들이 가진 서버..