'tcp 한번에 많이 보내라' 에서 질문!

3권에서 새로 도입된 네트웍 및 멀티플레이어 프로그로그래밍 섹션을 위한 게시판입니다.

Moderator: 류광

Locked
비회원

'tcp 한번에 많이 보내라' 에서 질문!

Post by 비회원 »

안녕하세요
'Effective TCP/IP Programming 네트워크 프로그램을 향상시키는 44가지 tips'
이라는 책을 공부하다가 궁금한점이 있어서 올려봄니다

Tip24 가능하면 조금씩 여러번 보내지 말고 한번에 많이 보내라
부분을 요약하면 결국 nagle알고리즘을 비활성화 시키는거보다는
(일반 send함수말고) unix계열은 writev, 윈도계열은 WSASend를
사용하는걸 추천한다고 되어있습니다.

이책을 공부하기전 네트워크 배울때 패킷은 한번에 몰아서 보내는게 좋다는걸
주서 듣고 send를 할때 따로 버퍼큐를 만들어서 어느정도 차거나 일정시간이되면
실질적으로 send하는형식으로 개인 라이브러리를 구현했었는데요

저함수들을 사용하면 이런작업을 안해줘도 되는건가요?

그리고 실무에서 저함수들을 실질적으로 사용하는가도 궁금합니다
(사내 라이브러리역시 제가 구현한방식으로 되어있어서 다른데는 또 어떤가 궁금해요)

머 윈도계열 서버면 WSASend 다들 사용하시겠지만 유닉스 계열 쓰는 회사들은 어떤지..
(저희 회사는 둘다사용합니다...)
비회원

Re: 'tcp 한번에 많이 보내라' 에서 질문!

Post by 비회원 »

비회원 wrote: 저함수들을 사용하면 이런작업을 안해줘도 되는건가요?
함수 사용과는 무관하죠.. 버퍼 작업해서 모아서 보내야 의미가 있는거죠.
비회원

Post by 비회원 »

질문자입니다

writev와 WSASend 시그니쳐를 다시보니까 답이 있더군요 ㅠㅠ

제가 구현한 방식은 버퍼 하나에 패킷 여러개를 이어붙여서 한개로 보내는식이었는데
요함수들은 WSABUF혹은 iovec배열을 만들어서 각 패킷들을 넣고 그 갯수를 넣어서
처리하는 방식이었군요
이건 머 바보도 아니거... 쪽팔려 자삭할까 했지만 저같은 분들있을까바 글 남깁니다.

모두 열공하세요!
imays
Posts: 1044
Joined: 2003-02-18 10:29
Contact:

Post by imays »

다른거보다, Effective TCP/IP Programming이라는 책 자체가 있다는걸 처음 알았습니다.
목차를 보니 MUST READ이군요! 정보 감사합니다.
온라인 게임 서버 엔진 ProudNet
http://www.nettention.com
비회원

Post by 비회원 »

그런데 그 책 절판아닌가요
비회원

Post by 비회원 »

저는 강컴에서 원서로 구입했었습니다.
좀 오래된 책이라서 고급 기술을 배우기는 어렵지만 기본에 대해서는 배울게 많은 책입니다.
Locked