inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

패킷은 어떤 원리로 없어지나요?

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

안녕하세요! 수업 정말 잘 듣고 있습니다. 들으면서 그동안 들어왔던 용어의 실체가 이것이구나...를 깨달으면서 너무나 발전하는 것 같습니다. 갑자기 궁금해졌던 것은, 패킷은 누가 청소하나 입니다. 예를들어 TTL이 다한 패킷은 라우터가 버리고, 또한 DST에 도달한 패킷(제가 이해하기로는 택배 상자)도 버려지는데, 이 패킷들은 누가 치우는지가 궁금합니다. 그리고 만약 이 역할을 하는 GC같은 쓰레드가 있다면, 원리도 GC와 비슷한 것인지가 궁금합니다. 아직 취업 준비중인 학생이고, 네트워크 개념에 대해 너무 알지 못해서 용어를 잘못 썼을수도 있고, 지식이 부족한 상태입니다. 혹시라도 제가 용어적으로나 개념적으로 실수한 부분이 있다면, 한번 짚어주시면 감사하겠습니다.

  • 네트워크
  • 프로토콜
여랄 댓글 1 좋아요 0 조회수 647

PC에 설치하는 프록시 4:01 부근

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

안녕하세요 질문의 요지는 해당 pc에 한 개의 client, 한 개의 내부 proxy 서버가 프로세스 단위로 돌아가고 있는데 이들 서로 https 통신을 한다는 것은 이들 끼리 암호화 방식으로 하는 것인지 아니면 client와 Target server와 암호화 방식으로 한 packet을 그대로 proxy 서버를 거쳐서 보낸 것인지 만약 구조가 후자라면 대칭키를 공유하는 것인지 궁금합니다.

  • 네트워크
김현석 댓글 1 좋아요 0 조회수 370

쿠키와 세션의 동작에 대해서 질문드립니다.

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 제가 궁금한 건, 만약 하나의 클라이언트에서 여러 쿠키가 생성되었을 경우가 궁금합니다. 강의에서 "클라이언트가 서버로 요청을 보낼 때 마다 쿠키를 보낸다"라고 하셨는데, 이게 요청한 도메인과 쿠키의 도메인이 일치하고, 쿠키 경로와 일치하는 쿠키만 서버로 전송이 되나요? 전송된다면 해당 경로의 모든 쿠키가 전송되는걸까요? 쿠키가 전송되는 범위?가 궁금합니다ㅠ 클라이언트에서 쿠키를 보내던 아이디 비밀번호를 전송하던, 누군가 아이디 비밀번호에 대한 유효성 검사나, 해당 쿠키는 어떤 세션id와 일치하는지 확인해서 유저 정보를 파악 한다고 생각하는데 이는 모두 서버에서 하는 것일까요? 이전에 발급 받은 쿠키가 있다면, 서버에 값을 전송하지 않고 쿠키를 전송한다고 공부했습니다. 그럼 결국에 클라이언트에서 "이 리소스는 이전에 쿠키를 생성해서 저장이 되어있어!"처럼 클라이언트에서 식별을 해야하는데 클라이언트에서 어떻게 판단을 하고 서버로 리소스를 보낼지, 쿠키를 보낼지 판단을 하나요? 마지막으로, 쿠키와 세션은 모두 http의 무상태 단점을 보완하기 위해 쓰이는 것이라고 생각합니다. 물론 보안적인 측면도 있겠지만요! 하지만 이 둘의 차이는 클라이언트에서 관리하냐 서버에서 관리하냐의 차이로 이해하고 있는데 맞을까요? 생각이 정리 되어있지 않아 약간 복잡하게 질문글 올렸지만 답변 주신다면 정말 감사하겠습니다!

  • 네트워크
dydghksfe766 댓글 1 좋아요 0 조회수 708

HTTPS 에서 HTTP와 SSL의 관계에 대한 질문

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

안녕하세요. 강사님 뒤늦게 네트워크 공부를 하고 있는 개발자 입니다. ^^; 질문1) Https는 443 Port number를 사용한다고 알고 있습니다. Microsoft edge, Chrome, Firefox 등 다양한 Web browser가 동작한다면 모두 동일하게 443 Port를 사용하는지요? 질문2) 만약에 질문1이 True라면, SSL Layer의 기능 중, 수신 Packet을 분석해서 Web browser에 맞게 HTTP data를 전송해 주는 기능이 있는 것인지요? 문제가 될 여지는 없는지요? 질문3) SSL은 Daemon 등 어떤 형태로 존재하는지요? 이상입니다!

  • 네트워크
  • 프로토콜
Jung 댓글 1 좋아요 0 조회수 543

Persistence Connection과 Connection:close 헤더

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요 :) 강의 들으면서 RFC 7230 문서를 함께 읽어보던 중, Persistence Connection 연결이 종료되는 기준에 대해 궁금한 점이 생겼습니다. Persistence Connection이 종료되는 기준이 궁금해져서 본 강의의 커뮤니티에 질문을 검색했을 때, [Persistence Connection 에는 약 60초의 타임아웃이 있다.]( https://www.inflearn.com/questions/169548/persistence-connection-%EC%97%B0%EA%B2%B0-%EC%9C%A0%EC%A7%80%EC%99%80-%EC%A2%85%EB%A3%8C-%ED%8C%90%EB%8B%A8%EC%9D%98-%EC%A1%B0%EA%B1%B4 ) 라는 답변을 봤습니다. 그래서 "60초의 대기 시간 후에도 클라이언트에서 요청이 없으면 서버가 자동으로 연결을 종료하는구나!" 라고 이해했었는데요, 공식 문서의 Connection 부분에는 [Persistent Connection은 클라이언트, 혹은 서버에서 헤더에 Connection:close를 명시하면 종료된다.]( https://datatracker.ietf.org/doc/html/rfc7230#section-6.3 ) 라는 말이 있더라구요. 그리고 Timeout 에 대해서는 The use of persistent connections places no requirements on the length (or existence) of this timeout for either the client or the server. 라는 말이 있는데, 저는 이 말을 "Persistent Connection은 timeout을 가지고 있지 않다." 라는 의미로 이해했습니다. 여기에서 생긴 제 궁금증은 다음과 같습니다. Persistent Connection은 "요청과 응답이 계속 오가는 상황에서는" Connection:close에 의해 종료되는 것이 맞을까요? 1번의 조건을 전제로 하고, connection이 장기간 idle 상태로 있는 경우에 connection을 낭비하지 않기 위해 timeout 후에 서버가 connection을 종료하는 것인가요, 아니면 계속해서 connection을 열어두는 것인가요? 강의 잘 듣고 있습니다. 감사합니다!

  • 네트워크
감바스 댓글 1 좋아요 1 조회수 599

[※중요] 이해하면 인생이 바뀌는 TCP/IP 송·수신구조 ack가 보내는지는 단위?

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

선생님 안녕하세요 강의 듣다가 궁금한 점이 있어서 질문 남깁니다. 수신 하는 측에서 ack를 송신 측에서 보낼 때도 똑같이 frame 이라는 단위로 보내는건가요?? 비유해주신 택배차 처럼 보내는지 궁금합니다.

  • 네트워크
  • 프로토콜
박박 댓글 1 좋아요 0 조회수 907

VPN 과 일반 서비스의 차이

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

vpn 이라는 것과 청바지 회사 웹 서비스에서 내부 직원들만 로그인해서 볼 수 잇는 정보를 부산 직원이 열람하는 것이랑 무슨 차이가 잇나요? 그냥 네이버 로그인 하는 것이나 VPN이랑 무슨 차이가 잇는 것인가요?

  • 네트워크
콩팥팥죽 댓글 1 좋아요 0 조회수 545

포트번호에 관해 질문드립니다.

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

제가 이해하기로는 IP주소에는 네트워크 주소와 호스트 주소가 있고 포트번호는 호스트 주소에 있는 프로세스 더 정확히 말하면 소켓을 구분하는 번호로 사용된다고 이해하고 있는데요. www.naver.com 이나 www.google .com이나 뒤에 :80 포트 번호가 생략된다고 하던데 (https 라면 443 이라고 알고 있습니다) 포트 번호는 호스트 주소에서 프로세스를 구분 하는 용도라고 이해를 했는데 http프로토콜이 80번 포트를 사용한다는게 이해가 가질 않습니다. http가 프로세스는 아니잖아요? 그런데 어떻게 포트 번호가 있는건지.. 네이버나 구글 url주소를 치면 dns서버에서 ip주소로 변환해서 회사 서버에 접속이 되고 그중에서 http 프로토콜에? 웹서비스 접속을 하려고 하니 80번 포트로 접속을 하는 건지.. 그럼 이것은 강의에서 설명하신 포트 중에 서비스 번호를 의미하는건지.. 그리고 포트포워딩에서 포트는 위에 포트를 의미 한다기 보다 강의에서 설명하셨던 2계층 포트를 의미하는건가요? 개념이 뒤죽박죽되어 이해가 가질 않아 답답한 마음에 질문드립니다.ㅠㅠ

  • 네트워크
  • 프로토콜
REN 댓글 2 좋아요 0 조회수 802

port restricted cone 방식에서 강의 3:35 질문

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

강의 3:35에 192.168.0.10 port 3001은 NAT table에 추가가 된게 아니라 갱신이 된 상태를 설명하는 것인가요? 192.168.0.10:3000 / 8080 / 15.15.15.15:5555 192.168.0.10:3001 / 8080 / 15.15.15.15:7777 이게 아니라 192.168.0.10:3001 / 8080 / 15.15.15.15:7777 현재 테이블에 갱신이 되어서 이것만 남아 잇는 상태를 설명해주신게 맞을까요? 근데 만약 이것을 설명한 것이라면 192.168.0.10:3000 / 8080 / 15.15.15.15:5555 192.168.0.10:3001 / 8080 / 15.15.15.15:7777 매핑된 port는 1개인데 15.15.15.15:7777이 3000으로 갈지 3001로 갈지 어떻게 판단을 하나요??

  • 네트워크
콩팥팥죽 댓글 1 좋아요 0 조회수 452

9:30 랑데뷰 서버

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

중간에 랑데뷰 서버에 대한 내용이 나오는데 너무 생략되서 잘 모르겠습니다. 원활한 게임 통신 및 랑데뷰 서버, 홀펀칭 이야기는 후반 강의에 나오는 내용인가요?

  • 네트워크
콩팥팥죽 댓글 1 좋아요 0 조회수 616

서브네팅의 목적 질문

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

서브네팅의 주목적이 공인 ip 주소를 아껴쓰기 위함 사설 ip에서 관리자 필요에 따라 호스트 id 범위 조절 이렇게 생각하면 맞을까요?

  • 네트워크
  • 프로토콜
콩팥팥죽 댓글 1 좋아요 0 조회수 772

공유기가 인터넷 ip 주소 부족 문제 (공인 ip를 받을 때 단위)

해결됨

외워서 끝내는 네트워크 핵심이론 - 응용

샘의 유튭에서 본 내용인데요 https://www.youtube.com/watch?v=px0HDON5Wa4&list=PLXvgR_grOs1BFH-TuqFsfHqbh-gpMbFoy&index=37 공인 ip를 받을 때 단위가 어떻게 되길래 100개 달라고하면 154개가 낭비가 되나요? c클래스 단위로 줄수밖에 없는 것인가요? (* 6:20 보면 클래스 단위로 준다고 말씀하신것 같은데 예시인가요 아니면 실제로 그렇게 부여되나요?) 177.232.111.220 ~ 177.232.111.255 까지 30개 가져가세요 이렇게 안되나요?

  • 네트워크
콩팥팥죽 댓글 2 좋아요 0 조회수 562

pymsql 라이브러리 설치 어떻게 하셨나요?

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

주피터 노트북 서버 만들어보기 챕터 12분 06초 경에 느낌표와 pip install 을 하면 명령어를 바로 실행할수 있어서 바로 라이브러리 설치를 하셨는데요. 엔터를 누르면 그냥 줄바꿈이 되는데 어떻게 설치하셨나요?

  • 네트워크
  • linux
  • docker
김의중 댓글 1 좋아요 0 조회수 464

CSpinLock 코드 작성중 원리에 대해서 의문점이 들어 질문 드립니다.

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

void CSpinLock::lock() { bool expected = false; bool desired = true; while (_locked.compare_exchange_strong(expected, desired) == false) { expected = false; } } SpinLock의 해당 코드에서 _locked의 값이 true일때, expected의 값이 초기에는 false임으로, 해당 반복문을 통과하지 못하고 기다립니다. 그런데 expected가 locked의 값인 true로 바뀌므로 이를 반복문 내에서 expected = false; 값으로 변경해주는데, expected의 값을 false로 변경해주기 전에 true인 locked의 값이 들어오면 아직 expected의 값은 변경되기 전이므로 SpinLock을 빠져 나올 수 있지 않을까요? 코드를 실행해보니 SpinLock이 잘 실행되고 있는 것은 확인했지만, 머리속에서는 납득하지 못한 의문점이 멤돌아서 이렇게 질문 드립니다.

  • 네트워크
  • MMORPG
  • windows-server
가랑눈 댓글 1 좋아요 1 조회수 401

그림에 있는 웹서버가 무엇인가요??

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

그림에 있는 웹서버가 무엇인가요?? 요청을 사용자 컴에서 보내면 문서 + css파일 + js파일 다 받아온 후에 사용자 컴퓨터의 브라우저가 조립해서 표기를 해주는것으로 알고있습니다. 제가 헷갈리는 부분은 웹서버에서 정적 파일 서빙이후 파일 받으면 웹서버를 거쳐서 was를 갈 필요 없이 바로 was로 갈 수 있을텐데 구조가 저렇게 되있으면 반드시 거쳐가야 하는것 아닌가? 하는 의문이 들었습니다. 물론 서비스를 제공하는 회사별로 다르겠지만 일반적으로 어떻게 되는 것인가요?

  • 네트워크
  • 프로토콜
콩팥팥죽 댓글 1 좋아요 0 조회수 659

[리눅스용 도커 설치] 편 4:20

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

[리눅스용 도커 설치] 편 4:20 쯤에서 질문있습니다. docker repository 등록할때 자료에 적혀있던 명령어 둘다 안되는데 (1) 강의에 있는 명령어 실행시 (2) 자료 아래 추가로 작성된 명령어 실행시 어떻게 찾아야할지 모르겠어서... 어떻게 해야할까요? 우분투는 20.04로 진행했습니다!

  • 네트워크
  • linux
  • docker
과연 댓글 1 좋아요 0 조회수 443

TryPop()함수 중 _head와 _tail이 같을 때 ReleaseRef()를 해야하나요?

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

강의 코드를 똑같이 따라하는 도중 TryPop()함수에서 무한 루프에 빠지는 것을 확인하였습니다. 위의 이미지 중 주석처리 한 곳이 TryPop()중 무한 루프에 빠지게 하는 함수입니다. _head와 _tail이 같을 경우 ReleaseRef()에 들어갑니다. 하지만 초기 internalCount는 0이고 unsigned입니다. 때문에 저의 컴퓨터 환경기준 --를 진행할 시 '1073741823'으로 바뀌면서 무한에 가까운 루프에 빠지게 됩니다. 위의 이미지 같이 주석처리 할 경우 강의의 예시처럼 잘 진행되는 것을 확인 하였습니다. 혹시 저 부분을 주석처리 해도 되는지, 안된다면 위와 같은 상황에서 어느 부분을 수정해야 하는지 확인해 주실 수 있으실까요?

  • 네트워크
  • MMORPG
  • windows-server
qkrtkdgus78 댓글 1 좋아요 0 조회수 538

GIocpCore에서 Dispatch할 때

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

iocpObject Dispatch할때 어떻게 자동으로 리스너 Dispatch로 들어가는건가요?

  • 네트워크
  • MMORPG
  • windows-server
index1207 댓글 1 좋아요 0 조회수 485

클라이언트 연동 강의

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 루키스님 제가 c++ icop 멀티스레드 환경에서 서버를 제작하고 원래 언리얼로 클라이언트 만들어서 연동하려했는데 자료가 부족해서 유니티 강의를 참고하려고합니다. Part7 : MMORPG 컨텐츠 구현 (Unity + C# 서버 연동) Part9 : MMORPG 컨텐츠 구현 (DB 연동 + 대형 구조 관리 + 라이브 준비) 두가지의 강의를 들어보려고하는데 유니티와 c#에 대한 지식이없어도 들을수있을까요? 언리얼 연동에 도움이 되는강의가 더 있을까요? Part5 : 데이터베이스(SQL Server) 강의는 수강하려고합니다.

  • 네트워크
  • MMORPG
  • windows-server
winwincs 댓글 1 좋아요 0 조회수 617

소켓 프로그래밍 질문 있습니다!

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

msdn 문서도 찾아보면서 공부 중인데, 제가 이해한 게 맞나 확신이 안가서 질문 드립니다! 서버가 계속 listen 상태이고 여러개의 클라이언트들이 연결을 하고 연결을 끊는 과정에서도 서버가 listen 상태를 계속 유지하게 하려면 accept() 함수를 while 문으로 반복적으로 받게 한다 (여러 클라이언트들의 연결을 수용하기 위함) accept() 함수로 백로그 큐에 있던 수신정보?연결대기정보?를 pop하여 새로운 소켓을 생성한다 내부에 또다른 while 문으로 생성된 새로운 소켓을 활용해 송수신을 한다 accept() 함수를 호출하는 while문 마지막 부분에 생성된 소켓을 close 한다. 이렇게 하는게 맞을까요?? 제가 이렇게 코드를 짠 것 같은데, 서버를 실행시키고 한개의 클라이언트를 실행시켜서 송수신을 하다가 클라이언트를 종료시키면 서버도 같이 종료되는 것 같아서요...여러 클라이언트를 실행시켜도 처음 실행시킨 클라이언트만 송수신이 가능하더라구요 ㅠㅠ(제가 코드를 잘못 짠 걸수도 있습니다 ㅎㅎ;;) 아래는 서버와 클라이언트의 주요 소스코드 부분입니다 [Server] // 윈속 초기화와 socket(), bind(), listen() 함수 생략 while (1) { // accept() clntAddrSize = sizeof(clntAddr); clntSock = accept(listenSock, (SOCKADDR*)&clntAddr, &clntAddrSize); if (clntSock == INVALID_SOCKET) ErrorHandling(L"accept() error"); // 접속한 클라이언트 정보 출력 wprintf(L"\n[TCP 서버] 클라이언트 접속 : IP 주소 = %s, 포트 번호 = %d\n", inet_ntoa(clntAddr.sin_addr), ntohs(clntAddr.sin_port)); // 클라이언트와 데이터 통신 while (1) { recvLen = recv(clntSock, (char*)message, sizeof(message), 0); if (recvLen == SOCKET_ERROR) ErrorHandling(L"recv() error"); else if (recvLen == 0) break; // 받은 데이터 출력 message[recvLen / 2] = L'\0'; wprintf(L"[TCP/%s:%d] : %s\n", inet_ntoa(clntAddr.sin_addr), ntohs(clntAddr.sin_port), message); // 데이터 보내기 strLen = wcslen(message) * sizeof(wchar_t); if (send(clntSock, (char*)message, strLen, 0) == SOCKET_ERROR) ErrorHandling(L"send() error"); } closesocket(clntSock); wprintf(L"[TCP 서버] 클라이언트 종료 : IP 주소 = %s, 포트 번호 = %d\n", inet_ntoa(clntAddr.sin_addr), ntohs(clntAddr.sin_port)); } closesocket(listenSock); WSACleanup(); [Client] // 윈속 초기화와 socket(), bind() 함수 생략 // connect() if (connect(hSocket, (SOCKADDR*)&servAddr, sizeof(servAddr)) == SOCKET_ERROR) ErrorHandling(L"connect() error"); else { printf("Connected...........\n"); } // 서버와 데이터 통신 while (1) { // 데이터 입력 wprintf(L"data input : "); if (fgetws(message, BUF_SIZE, stdin) == NULL) break; // '\n' 문자 제거 strLen = wcslen(message); if (message[strLen - 1] == L'\n') { message[strLen - 1] = L'\0'; strLen--; } if (wcscmp(message, L"q\n") == 0 || wcscmp(message, L"Q\n") == 0) break; //데이터 보내기 recvLen = 0; recvLen = send(hSocket, (char*)message, strLen * 2, 0); if (recvLen == SOCKET_ERROR) { ErrorHandling(L"send() error"); break; } printf("[TCP 클라이언트] %d 바이트를 보냈습니다.\n", strLen); while (recvLen < strLen * 2) { recvCnt = recv(hSocket, (char*)&message[recvLen / 2], BUF_SIZE - 1, 0); if (recvCnt == SOCKET_ERROR) { ErrorHandling(L"recv() error"); break; } else if (recvCnt == 0) break; recvLen += recvCnt; } message[strLen] = L'\0'; printf("[TCP 클라이언트 %d 바이트를 받았습니다.\n", strlen); } closesocket(hSocket); WSACleanup();

  • 네트워크
  • MMORPG
  • windows-server
dustjdtns00 댓글 1 좋아요 0 조회수 449

인기 태그

인프런 TOP Writers

주간 인기글