본문 바로가기

소켓으로 에코 프로그램, 1:1 채팅 프로그램 짜기 소켓(socket)이 무엇인지 알기위해선 TCP/IP가 무엇인지 알아야한다. (http://chojpsh1.tistory.com/84 참조) 왜냐하면 소켓은 TCP/IP로 통신하는 네트워크 내에서 행해지는 통신 장치(방법)이기 때문이다. IP 주소와 포트번호로 생성되는 네트워크 어드레스를 통해 클라이언트 프로그램과 서버 프로그램이 통신되도록 하는 아이가 소켓이다.클라이언트와 서버 간의 소켓을 통해 어떻게 통신이 이뤄지는지 그림으로 보는게 훨씬 이해하기 쉽다.이를 통해 두가지 프로그램을 짜보았다. 우선 그림에 데이터 전송부분에 클라이언트와 서버 양방향 통신과는 달리 서버 측에서 일방적으로 입력한 문장을 클라이언트 측에 프린트 해주는 에코프로그램과 클라이언트와 서버 동시 전송은 안되지만 한 문장씩 주고받을 .. 더보기
[2014 CODEGATE] weird shark 문제의 pcap파일을 와이어샤크로 열면 에러가 뜬다.블럭의 길이에 문제가 있어서 열리지 않는거 같다. 일단 직역해보자면 EPB의 전체 블럭길이는 96인데 4270407998 바이트인 패킷에 비하면 너무 작아서 문제가 있다는 것 같다. 그렇다면 일단 EPB가 무엇인지 알아보자.EPB란 Enhanced Packet Block으로 PCAP 구조와 같이 패킷 데이터를 저장하는 블럭이라고 한다. http://www.packetinside.com/2013/08/pcap-ng.html여기로 가면 EPB뿐만 아니라 다른 블록에 대한 설명들도 자세히 되어있으니 보면 좋을 것 같다. 일단 저 길이들을 어떻게 조절해주나 무슨 툴을 써야하는지 조차 몰라 헤맸는데 이 전에 쉬운 패킷 문제를 풀었었는데 hex로 정보가 뜨니까 헥.. 더보기
패킷(Packet) 겉햝기 CTF 문제들을 받다보면 확장자가 pcapng인 파일들을 많이 볼 수 있다. 네트워크를 알지 못하는 나는 이게 패킷과 관련된 파일이라는 것도 오늘 전까지는 몰랐다. 더 많은 문제들을 풀 수 있도록 pcapng파일을 어떻게 분석해야 하는지 이전에 패킷에대해 정확히 짚고 가자.우리가 무언가를 검색하기 위해 구글에 검색을 하고 링크를 누르는 간단한 작업에도 네트워크 상에서는 바쁘게 흘러간다. 내가 전송하는 정보는 나누어 전송하게 되는데 이때 나눈 단위를 패킷(packet)이라고 한다. 즉, 네트워크 상에선 데이터를 패킷 단위로 나누어 전송한다는 것이다. 그렇다면 왜 나누어서 전송할까? 우선 전송하는 데이터의 길이가 긴 경우 효율적으로 전송하기 위해서다. 네트워크 상에는 나뿐만 아니라 수많은 이용자에 의해 수많.. 더보기