묻고 답해요
147만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크
그래프
네트워크의 구조는 그래프의 형태를 띄고있다 라고 하셨는데,비유인가요 ? 실제로 기기간(노드)간의 메시지를 주고받을때 그래프 자료구조를 사용하는건가요 ?실제로 제 기기가 네트워크안에 있다면(연결 되었다) 라고 한다면 어딘가의 장비에 코드로써 제 기기(노드 ) 가 기존의 그래프에 추가된건가요 ?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
프로토콜이 적용된 파일 송신 서버에서 send, recv 질문 있습니다!
안녕하세요 널널한 개발자님! 언제나 강의 잘보고 있습니다.예제 소스 코드 보고 있는데 의문이 생겨서 이렇게 질문드립니다.이전 강의에서 recv와 send는 1:1로 매칭되지 않는다라고 하셨었는데 프로토콜이 적용된 파일 송신 서버 제작 강의 예제를 보면 MYCMD 나 GETFILE 구조체를 recv 함수로 한번씩 읽어오시는것같아서요.혹시 recv로 한번에 읽어오는 데이터의 크기가 GETFILE, MYCMD의 크기보다 작아 한 번 더 읽어야 하는 경우가 발생할 수 있을까요? 해당 코드 구문입니다!
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
"파일 송신 서버 제작" 강의 질문입니다!
안녕하세요!파일 송신 서버 제작 강의 부분중에 궁금한 것이 생겨 질문드립니다. "파일 데이터를 전송할 때 큰 데이터를 한 번에 올리는 것이 더 성능적으로 좋아질 수 있다." 라고 하셨는데, 그 이유가 무엇인지 구체적으로 알고 싶습니다. 제가 생각한 것은시스템 콜 호출 횟수 감소(유저->커널 레벨의 모드 스위치 감소)디스크 읽기 최적화? (한 번에 순차적으로 접근할 수 있는게 많아지는...?)(I/O를 여러 번 하면, 할 때마다 랜덤 엑세스를 해야하니까, 디스크 seek 타임이 많아지는 이유가 맞을까요?) CPU가 접근하는 커널 페이지 버퍼의 캐시 히트율 증가정도인데요. 혹시 다른 이유가 더 있는지 궁금합니다. 감사합니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
[Ethernet 채팅 프로그램 개발] 이런것도 가능할까요?
[강의:Ethernet 채팅 프로그램 개발]안녕하세요. 선생님! 오랜만에 질문드리네요 ㅎㅎ강의 수강중 이렇게하면 해킹할수 있겠다? 라는 생각이들어 질문남깁니다![ 상황 ]특정 게임서버가 있습니다.게임서버에는 정의한 패킷이 1개가 있고 계정 ID를 받으면 관련된 DB 데이터를 변경하는 로직이 작성되어있습니다.여기서1) 게임서버에서 수신된 패킷이 해당 유저가 보낸게 맞는지? 패킷 암호화 처리 없음2) 게임서버에서 수신된 패킷의 계정 ID의 Session 데이터(연결정보)가 있는지? 체크하지 않음라고 했을때Ethernet/IP(게임서버 IP)/TCP(게임서버 Port)/Segment(정의한 패킷)를 수동으로 만들어서 보내면해킹처럼 게임서버에 내가아닌 다른 계정의 ID를 보내 처리하게 할수있겠다. 라고 생각이 들었는데요.Q. 네트워크딴에서 체크섬 말고는 따로 보안처리가 없는것같아 이런 시나리오가 가능한지 궁금합니다. 추가내용) 강의를 이어서 더 보니, 게임서버가 TCP통신을 하고있었다면 Seq까지 맞춰야하네요.(Seq번호가 맞지 않으면 게임서버의 운영체제 단에서 패킷 버려짐로 이해) 이러면 해킹하는게 힘들것같네요 ㅎㅎ
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
ntohs() 와 htons() 함수의 차이
void packet_handler(u_char* param, const struct pcap_pkthdr* header, const u_char* pkt_data) // pcap_loop()가 돌면서 패킷을 감지할때 그 때 읽어들인 감청 데이터는 pkt_data 에 들어간다. { EtherHeader* pEther = (EtherHeader*)pkt_data; // 감청 데이터를 EtherHeader 로 형변환 printf( "SRC: %02X-%02X-%02X-%02X-%02X-%02X -> " "DST: %02X-%02X-%02X-%02X-%02X-%02X, type:%04X\n", pEther->srcMac[0], pEther->srcMac[1], pEther->srcMac[2], pEther->srcMac[3], pEther->srcMac[4], pEther->srcMac[5], pEther->dstMac[0], pEther->dstMac[1], pEther->dstMac[2], pEther->dstMac[3], pEther->dstMac[4], pEther->dstMac[5], //ntohs(pEther->type) pEther->type ); } ntohs(pEther->type) 과 htons(pEther->type)이 기능은 똑같다고 하는데, ntohs() 는 네트워크 오더 -> 호스트 오더 이고, htons() 는 호스트 오더->네트워크 오더 아닌가요?제가 Intel 프로세스 탑재한 PC에서 예제 실행중인데, 위 코드와 같이 실행하면 Ipv4 인 type 값이 0008로 나옵니다. 그래서 htons() 로 감싸서 출력하면 0800 으로 잘되는데 ntohs() 로 감쌌을떄는 왜 0800 이 나오는지 모르겠습니다.ntohs() 면 호스트 오더를 사용하는데 제 pc에서는 그대로 호스트 오더 방식으로 되야 하는거 아닌가요?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
대표적인 장애 유현 2
안녕하세요 개발자님 수신측 에서 송신측으로 순서 바뀜 및 패킷 유실에 대한 응답을송신측으로 전달 하면, 송신측에서 재전송을 시도 하는데,송신측에서는 수신측으로 데이터를 전송 할때, 재전송 요청에대해 미리 대비해서 수신측으로 전송 되기전의 패킷을TCP Buffer 에 쌓아 놓고, 전송을 하며,정상적인 응답이 와야 TCP Buffer 에서 비우는 작업을 하는 것인가여?TCP Buffer 에 전송전에 데이터를 쌓아 놓는 것은 맞는 걸까여?수신측에 재전송 요청에 대한 데이터 조회는 TCP Buffer 에서 찾는것은 맞는 걸까여?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
대표적인 TCP 장애 유현
안녕하세요 개발자님 강의 너무 잘 들고 있습니다. 자세한 답변 부탁드립니다.와이어 샤크를 톨해 대표적인 TCP 장애 유형 을 다 캡처하는 작업 까지 진행 했습니다. 여기서 의문인 것은, Packet Loss, TCP Out of order, Retransmission , Dup ACK 를 통해세그먼트된 데이터의 유실 이나 순서를 OS가 최대한 보장 하기 위한 노력이다라고 생각하고, (의문점) 첫번째, 세그먼트 조각 모음 하는 장소그 다음 전송된 세그먼트들을 조각 모음 하는 장소가 TCP Buffer(Window Size) 이며, 여기서 유실된 세그먼트 및 순서 및 중복을 검증 하고, 그 응답(대표적인 TCP 장애유형)을 송신측으로 전송 한다. ( O , X ) 2. (의문점) 두번째, Socket 으로 전송 시점TCP Buffe r를 통해 완성된 데이터(세그먼트의 조각이 다도착해서 순서를 마춘 상태, 중복은 버리고) 가 잘 만들어 졌다고 가정한 상태에서, 완성된 데이터를 Socket 에 Copy 하는지 ? , 아니면 TCP buffer 에 세그먼트가 도착 하자마자(세그먼트 조각 모음 하지 않고), 즉시 Socket에 Copy 가 이루어 지는지가 궁금 합니다. !!!!!세그먼트 조각 모음을 하지 않으면, 대표적인 TCP 장애 유형을 검증 하는 것이 힘들거 같고, 방식이 궁금 하여 문의 드립니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
VMware Ethernet1이 없는 경우
Vmware 윈도우11이 ms사에서 제공하지 않아서따로 윈도우11 이미지를 받아서 VMware player에서 받아서 완전 쌩 윈도우11을 다운받앗는데cmd 창에서 ipconfig를 쳐보니까 Ehternet0 밖에 안뜹니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
socker buffer 에 관하여 문의 드립니다.
안녕하세요 개발자님 오래전 부터 유트브로 보다가, 인프런 할인 할때 한번에 여러개(많이) 수강 하여 듣고 있습니다. TCP 통신 관련 프로세스를 개발 하고 싶어서 문의 드립니다.유트브 이해하면 인생이 바뀌는 TCP 송/수신 원리설명에서 2개의 buffer 가 소개 되었는데요, TCP 와 socker buffer에 대해 문의 드립니다.1.TCP 에 Window Size(buffer) 를 리눅스 에서 실시간으로 조회 할수 있나요? (전은 못찾았습니다)2. socket buffer 을 리눅스 환경에서 실시간으로 조회 가능 한가요? (이것도 찾지 못했습니다.) 3.process 에서 socket에 buffer을 퍼 올려라 하는 말씀과 window size 가 mss 보다 작아지면서 생기는 wait 문제를 해결 하려면 process 부터 확인 하라고 하셧는데, 이 문제는 process 에서 code로 socker 연결 이후 process 내부에 변수로 buffer(사용자 정의)을 선언 하고, socker.recv() 함수를 통해 변수로 선안한 buffer 에 다 적재 하면 process 단에서 TCP 에 쌓이는 문제를 해결 할 수 있다고 생각 해도 되는 걸까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈 3
https://www.inflearn.com/community/questions/1431457/windows-11-%EA%B0%80%EC%83%81%EB%A8%B8%EC%8B%A0-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EC%9D%B4%EC%8A%88-2위 링크를 참고해서 VMware 가상머신을 다운받고 zip 폴더를 여는데 손상된 파일이라고 뜹니다.확인을 누르니까 압축해제는 동작하길래 압축해제를 눌러봤는데 압축해제를 하는 도중에 아래와 같이 뜹니다.강사님과 동일한 환경에서 학습하고 싶은데 어떻게 해야하나요 ??
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
이벤트 기반 파일 입출력과 callback 기반 파일 입출력이 네트워크에도 쓰이는 기법인가요?
안녕하세요.이벤트 기반 파일 입출력과 callback 기반 파일 입출력에 대해 궁금한 점이 있어 질문 드립니다.IOCP를 설명하시기 전 단계에서 이벤트 기반 파일 입출력과 callback 기반 파일 입출력에 대해 설명을 해주셨는데, 이 두 기법은 네트워크에서도 쓰이는 기법인지 아니면 IOCP를 설명하기 위한 베이스 기법으로서 설명을 해주신 건지 궁금합니다
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
개발환경 질문이 있습니다.
장애발생 관련해서 PC 2대가 있는게 좋다고 하셨는데 혹시 가상머신으로는 괜찮을까요
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
TCP/IP vs UDP , 멀티 스레드에서의 병목 현상에 대한 질문이 있습니다!
안녕하세요! 항상 좋은 강의 감사합니다.강의를 듣다가 궁금한 점이 있어서 질문을 드립니다!Q1.TCP/IP 의 경우 서버 입장에서 사용자가 연결되어 있다는 착각에 빠지지 말라고 알려주셨습니다. 하트비트를 어차피 보내줄 것이라면 UDP 로 설계를 해도 상관없는 건가요?연결을 신뢰할 수 없음에도 TCP/IP를 사용하는 이유가 궁금합니다.Q2.멀티 스레드 환경에서 GQCS를 할 경우, 스레드들이 공유하는 큐에 락을 걸어서 적용해봤습니다. 하지만 이 경우 큐에 접근할 때 병목 현상이 우려됩니다. 해당 세션이 특정 스레드에서만 처리되도록 하여 락을 없애는 것과 락을 걸고 여러 스레드에서 접근할 수 있도록 하는 것 중 어느 것을 선호하시나요? Q3. 어쩌면 Q2와 거의 같은 질문일 수도 있겠습니다. 멀티-스레드 환경에서 락 에 대한 대안이 있나요?
-
미해결이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈 2
Windows 11 가상머신 다운로드가 안되는 부분에 대해서,커뮤니티에서 댓글 주신 부분 확인해보았으나, 항목이 삭제 또는 완료 되었다고 나옵니다..ㅠㅠhttps://www.inflearn.com/questions/1412974MS사 내부 문제라 제가 대응하는 것이 불가능합니다. 해서 이 강의를 촬영할 당시 사용했던 VM을 OneDrive에 올려두었습니다. 24년 4월 VM입니다. 따라서 이미 라이선스는 만료된 상황입니다. 하지만 일단 사용은 가능할 것입니다. 감사합니다. 😄 WinDev2404Eval.VMWare.zip
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
메모리 관련 문제로 질문드립니다.
IOCP 서버를 클래스로 만들어 보려고 하고 있습니다.Thread 생성까지 오류 없이 되다가 Client가 접속되면 문제가 발생합니다.디버깅 결과 client_list는 메모리 할당이 되었으며 clientSocket이 정상적으로 도착한 상태입니다.하지만 위의 사진과 같이 push_back을 하려고하면 오류가 발생합니다. 해당 쓰레드의 함수는 class 내부의 메소드로 정의 및 구현되어있습니다.socket_list와 socket_cs를 class 외부에서 정의했을 때에도 같은 현상이 발생합니다.참고할만한 레퍼런스나 해결법이 있을까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Windows 11 가상머신 다운로드 이슈
Due to ongoing technical issues, as of October 23, 2024, downloads are temporarily unavailable.Windows 11 가상머신 다운로드가 안된다고 나옵니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Basic_dump 수행 오류
안녕하세요 항상 좋은 강의 감사드립니다. 상기에서 5번/6번을 누르면 데이터가 트래킹이되는데 다른 번호는 트레킹이 안됩니다. (7번/8번 포함) VMware가 트레킹이되면 정상적으로 빌드된거같은데 혹시 사유추정이 가능할지 문의드립니다.
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
테스트 환경 질문드립니다!
안녕하세요!아파트에 거주하고 있습니다.저희 세대로 들어오는 네트워크 신호를 담당하는 기기가 신발장 안쪽에 있고 굉장히 여러 케이블이 꽂혀 있습니다. 가끔씩 집 컴퓨터 인터넷이 안 될 때가 있는데 그 기기를 리부팅하곤 합니다. 각 방의 벽에 랜선 케이블을 꽂을 수 있게 되어 있습니다.PC는 전부 벽에 있는 랜선 포트에 랜선 케이블을 꽂습니다.거실에 있는 공유기는 거실 벽면에 있는 랜선 포트와 연결되어 있습니다.제가 파악한 걸 말씀드려보겠습니다.1. 세대로 들어오는 네트워크 신호는 신발장 안쪽에 있는 설비를 통해 집의 각 벽면의 랜선 포트로 전달한다공유기가 내보내는 신호 역시 벽면의 랜선 포트로 전달된 신호를 받아서 동작한다. PC가 랜선으로 수신하는 네트워크 신호와 공유기가 뿌리는 무선 신호는 같은 망에 속한다 이 상황에서, PC는 랜선으로 연결하고 노트북은 공유기에 연결하는 것이, 강의에서 말씀하신 하나의 공유기에 랜선으로 두 PC를 연결하는 것과 동일한 것처럼 느껴집니다. 맞을까요?이게 맞다면 영상에서 말씀하신 클라이언트 PC의 케이블 연결 해제가 노트북의 와이파이 연결 해제와 동일한 것 아닌가 하는 생각이 들었습니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
이더넷 질문 드립니다.
Ethernet 헤더 분석 및 LSO 이슈 강의에서 고급 네트워크 설정을 따라하려고하는데 이더넷이 없어요 .. 혹시 VMware에서 하신걸까요 .. 아니면 BIOS에서 제가 잘못한걸까요.. 답변 부탁드릴게요 !
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
윈도우10으로 해도 되나요??
집 os가 윈도우 10이여서요..